Avatar billede fredehan Nybegynder
11. februar 2009 - 20:36 Der er 12 kommentarer

Problemer med sessions..

Hejsa.
Jeg har et fansite som hedder HabboWay, men har problemer med mit login. Når man logger ind, og kodeordet er rigtigt, så sætter den
$_SESSION[online] til "ja", som sikrer at man er online og kan se siden. Hvis man ikke er online og man vil se en side, siger den bare at man ikk er logget ind.

Problemet er at den åbenbart ikke får taget fat i den der session. Den logger ind, og skal sende videre til startsiden, når man er logget ind, men skriver at man ikke er logget ind.

Så den er dårlig til at registrere mine sessions.

Et lille udpluk fra når man har indtastet rigtigt kodeord og brugernavn:

if($brugernavn1 == $brugernavn2 && $kodeord == $se[kodeord]) {
$online = 'ja';
$_SESSION[online] = $online;

og skriver både session_start(); og session_register(); i starten af filen.

på forhånd tak.
Avatar billede jakobdo Ekspert
11. februar 2009 - 21:22 #1
Nøjes med: session_start();
og helt i toppen, lige efter <? eller <?php

Hvor kommer disse fra:
if($brugernavn1 == $brugernavn2 && $kodeord == $se[kodeord]) {

En formular ?
Avatar billede fredehan Nybegynder
11. februar 2009 - 22:33 #2
Ja, de kommer fra en formular.
Den ser sådan her ud:

      <form action=\"http://habboway.dk/com/logger.php\" method=\"POST\">

<input type='text' name='brugernavn' value=\"Brugernavn\" onFocus=\"if(this.value=='Brugernavn'){this.value=''}\" onBlur=\"if(this.value==''){this.value='Brugernavn'}\" style=\"height: 20px; width: 140px; background-color: transparent; border:0px; font-size:11px;\">

    <input type=\"password\" name=\"kodeord\" value=\"Kodeord\" onFocus=\"if(this.value=='Kodeord'){this.value=''}\" onBlur=\"if(this.value==''){this.value='Kodeord'}\" onKeyPress=\"return submitEnter(this,event)\" style=\"height: 20px; width: 140px; background-color: transparent; border:0px; font-size:11px;\">

<input type=\"submit\" value=\"Login\" class=\"button\" style='width:60px; height:20; font-size:11px;background-color:transparent; border:0;'>
</form>
Avatar billede olebole Juniormester
11. februar 2009 - 23:17 #3
<ole>

Så ligger dine variabler i $_POST-arrayet. Sådan:
    echo $_POST["brugernavn"];

- ikke:
    echo $brugernavn;

/mvh
</bole>
Avatar billede dkfire Nybegynder
12. februar 2009 - 10:12 #4
Mon ikke du mangler en session_start() på startsiden og alle andre sider ?
Avatar billede olebole Juniormester
12. februar 2009 - 10:29 #5
Læs spørgsmålet  ;o)

Det gør han allerede - men han bruger sine variabler, somom Regsiter_Globals var sat til 'on'  =)
Avatar billede dkfire Nybegynder
12. februar 2009 - 12:11 #6
Ud fra hvad jeg læser, så bruger han session_start(), men kun på den side hvor han registrerer de to variabler, altså ved login.
Avatar billede olebole Juniormester
12. februar 2009 - 12:28 #7
Udfra, hvad jeg læser, registrerer han aldrig de to variabler, hvis han - ligesom alle med bare en anelse interesse i elementær serversikkerhed - kører med Register_Globals sat til 'off'  =)
Avatar billede fredehan Nybegynder
12. februar 2009 - 12:36 #8
Jeg hoster på one.com og register_globals er slået fra.

Grunden til at jeg bruger $brugernavn er fordi den skal fjerne alt HTML i den, da den ellers siger at "Brugeren BØRGE matchede ikke den indtastede kode".

Jeg bruger session_start(); over alt. I næsten alle mine filer. og hvis det ikke kan gøres, så bruger jeg den også i min top.php fil (toppen af designet).

mvh fredehan
Avatar billede olebole Juniormester
12. februar 2009 - 12:46 #9
"Grunden til at jeg bruger $brugernavn [...]" >> Det forstår jeg ikke
Avatar billede dkfire Nybegynder
12. februar 2009 - 12:46 #10
Og du har selvfølgelig sikret dig at du får vist fejlbeskeder ?
Det kan du gøre i dit kontrolpanel.

Dernæst vil det være en fordel hvis du viser HELE din kode for den fil hvor du mener det går galt.
Avatar billede fredehan Nybegynder
12. februar 2009 - 12:51 #11
Jeg har lavet en fejl. Det er flot, man programmere sine egne systemer, og kan ikke huske hvordan man har lavet det.
Det er ikke sessions det handler om. Det er et felt i databasen med sin bruger, hvor den sætter online til 'ja'.

<?php
session_start();
include("../top.php");
include ("../config.php");
$forbind = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_POST[brugernavn]'");
$se = mysql_fetch_array($forbind);
if($_POST[brugernavn] == ''){
print "Fejl!";
exit;
}else{
if($_POST[brugernavn] == ' '){
print "Fejl!";
exit;
} else {
$brugenavn1 = $_POST[brugernavn];
$brugernavn1 = strtolower($brugernavn1);
$brugenavn2 = $se[brugernavn];
$brugernavn2 = strtolower($brugernavn2);
$kodeord = $_POST[kodeord];
$kodeord = md5($kodeord);
if($brugernavn1 == $brugernavn2 && $kodeord == $se[kodeord]) {
mysql_query("UPDATE brugere SET online = 'ja' WHERE brugernavn = '$brugenavn2'");
session_start();
$online = 'ja';
$_SESSION[online] = $online;
$_SESSION[rang] = $se[rang];
$_SESSION[job] = $se[job];
$_SESSION[admin] = $se[adminlevel];
$_SESSION[lastvisit] = $time;
$ip = $_SERVER[REMOTE_ADDR];

mysql_query("UPDATE brugere SET seneste_login = '$time' WHERE brugernavn = '$_SESSION[brugernavn]'")or die(mysql_error());
mysql_query("UPDATE brugere SET ip2 = '$ip' WHERE brugernavn = '$_SESSION[brugernavn]'")or die(mysql_error());

if($_POST[husk] == 'ja') {
mysql_query("UPDATE husk SET husk = 'ja' WHERE brugernavn = '$_SESSION[brugernavn]'")or die(mysql_error());
} else {
mysql_query("UPDATE husk SET husk = 'nej' WHERE brugernavn = '$_SESSION[brugernavn]'")or die(mysql_error());
}
$dato = date("H:i");
mysql_query("INSERT INTO begivenhed (besked, dato) VALUES ('$_SESSION[brugernavn] loggede ind.', '$dato')") or die(mysql_error());
$forbind = mysql_query("SELECT * FROM brugere where brugernavn = '$_SESSION[brugernavn]'");
$se = mysql_fetch_array($forbind);
print "<br><br><center>
Logger ind..<br><center><img src='http://habboway.dk/loader.gif'></center></center><meta http-equiv='refresh' content='0; url=community.php'>";
} else {
print "<center><font size='3'>Forkert brugernavn eller kode!</font><br><br>Vender tilbage..<br><center><img src='http://habboway.dk/loader.gif'></center></center><meta http-equiv='refresh' content='0; url=http://habboway.dk/nyheder/forside.php'>";
}
}
}
include("../bund.php");
?>

Meget rodet fil.
Avatar billede fredehan Nybegynder
12. februar 2009 - 15:14 #12
Måske kunne det godt være formularen, har prøvet at lave den der login fil om 2 gange (fra bunden) uden held.. hmm hmm.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester