21. juni 2004 - 21:11
Der er
12 kommentarer og 1 løsning
problemer med register globals
Hejsa, jeg har denne kode stump <? if(($_POST[sesusr])||($_GET[sesusr])){ session_register(sesusr); session_register(sespass); }else{ Så snart den er sand, burde den så blive falsk hvis man opdaterer siden? Det gør den ihvertfald her...
Annonceindlæg fra inspirit365
Den bliver jo kun falsk hvis du ikke har en postvar eller en getvar som hedder sesurs længere?!? Men for at spørge på dine sessionsvariable, skal du bruge $_SESSION["sesusr"] eller if (session_is_registered("sesusr")){ } Ved ikke om det kan hjælpe dig, tror ikke helt jeg forstår dit spørgsmål ;)
Jeg får skrevet denne session_register(sesusr); men hvordan læser jeg indholdet igen ? $_SESSIOMN[sesusr] virker ikke
$_SESSION[sesusr] virker ikke
echo"Logget ind som: $_SESSION[sesusr]; // skriver kun Logget på som: samtidig kan denne besked kun vises hvis dette er sandt: if (session_is_registered("sesusr")){ så jeg konkludere at $_SESSION[sesusr] ikke virker korrekt i mit tilfælde... er jeg forkert på den ?
prøv: <? session_start(); if (!session_is_registered("sesuser")){ session_register("sesuser"); $_SESSION["sesuser"] = "dette er indholdet af min session"; echo "registrerer sessions variabel, reload siden"; } else { echo "Indholdet af min session er: ". $_SESSION["sesuser"]; } ?>
det virker fint... men hvorfor virker dette så ikke: if(($_POST[sesusr])||(session_is_registered("sesusr"))){ session_register(sesusr); $_SESSION[sesusr] = $_POST[sesusr]; session_register(sespass); echo"Logget ind som: $_SESSION[sesusr] | <a href='index.php?ses=0'>Log ud</a>";
Det giver ikke helt mening at ville have enten sessionsvariablen eller post-variablen. For hvis det er sessionsvariablen du har registrerer du den igen med det samme og overskriver den med postvariablen, som du ikke har. Dvs. når du reloader forsvinder indholdet i sessionsvariablen, fordi den overskrives af $_POST["sesusr"], som ikke længere eksisterer... :)
dette virker heller ikke: if(($_POST[sesusr])||(session_is_registered("sesusr"))){ session_register(sesusr); session_register(sespass); } $findes = mysql_query("SELECT * FROM brugere WHERE navn = 'daniel' && pass = 'hej'"); if(mysql_num_rows($findes)==1){ echo"Logget ind som: $_SESSION[sesusr] | <a href='index.php?ses=0'>Log ud</a>";
21. juni 2004 - 22:19
#10
hvis jeg ikke må bruge session_register(); hvad skal jeg så bruge?
21. juni 2004 - 22:26
#11
Det virker nu.... takker
21. juni 2004 - 23:05
#12
og så alligevel... Den vil ikke logge af: session_start(); if($_GET[ses] == "0"){ session_unregister(sesusr); session_unregister(sespass); } include("connect.php"); if(($_POST[sesusr])&&($_POST[sendlogin])){ $_SESSION[sesusr] = $_POST[sesusr]; $_SESSION[sespass] = $_POST[sespass]; } if($_POST[opret]){$_GET[side] = 'OPRET PROFIL';} $findes = mysql_query("SELECT admin FROM brugere WHERE navn = '$_SESSION[sesusr]' && pass = '$_SESSION[sespass]'"); if(mysql_num_rows($findes)==1){ $admin = mysql_fetch_array($findes); echo"Logget ind som: $_SESSION[sesusr] $admin[admin] | <a href='index.php?ses=0'>Log ud</a>"; }else{ $admin[admin]=0; echo" <form method=post action='?side=$_GET[side]'> Login: <input type='text' name='sesusr' size='10' style='font-family: Tahoma; font-size: 10 px; border-style: solid; border-width: 1; background-position: 0% 50%'> Pass: <input type='password' name='sespass' size='10' style='font-family: Tahoma; font-size: 10 px; border-style: solid; border-width: 1; background-position: 0% 50%'> <input type='submit' name='sendlogin' value='Login' style='font-family: Tahoma; font-size: 10 px; border-style: solid; border-width: 1; background-position: 0% 50%'> <input type='submit' name='opret' value='Opret' style='font-family: Tahoma; font-size: 10 px; border-style: solid; border-width: 1; background-position: 0% 50%'> </form>"; } ?>
21. juni 2004 - 23:14
#13
prøv: session_unregister(sesusr); session_unregister(sespass); unset($_SESSION["sesusr"]); unset($_SESSION["sespass"]); Og variablene forsvinder så vidt jeg husker først på næste side, så du kan evt. afslutte med: header("location: filnavn.php");
Vi tilbyder markedets bedste kurser inden for webudvikling