Avatar billede dallerweb.dk Nybegynder
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...
Avatar billede retep Nybegynder
21. juni 2004 - 21:18 #1
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 ;)
Avatar billede dallerweb.dk Nybegynder
21. juni 2004 - 21:43 #2
Jeg får skrevet denne session_register(sesusr);

men hvordan læser jeg indholdet igen ?

$_SESSIOMN[sesusr] virker ikke
Avatar billede dallerweb.dk Nybegynder
21. juni 2004 - 21:43 #3
$_SESSION[sesusr] virker ikke
Avatar billede dallerweb.dk Nybegynder
21. juni 2004 - 21:48 #4
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 ?
Avatar billede retep Nybegynder
21. juni 2004 - 21:52 #5
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"];
    }

?>
Avatar billede dallerweb.dk Nybegynder
21. juni 2004 - 21:59 #6
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>";
Avatar billede retep Nybegynder
21. juni 2004 - 22:07 #7
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...
:)
Avatar billede knudx Nybegynder
21. juni 2004 - 22:16 #8
så vidt som jeg har forstået, så er session_register den gamle måde at gøre det på... læs hellere selv: http://www.php.net/manual/en/function.session-register.php
Avatar billede dallerweb.dk Nybegynder
21. juni 2004 - 22:16 #9
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>";
Avatar billede dallerweb.dk Nybegynder
21. juni 2004 - 22:19 #10
hvis jeg ikke må bruge session_register(); hvad skal jeg så bruge?
Avatar billede dallerweb.dk Nybegynder
21. juni 2004 - 22:26 #11
Det virker nu.... takker
Avatar billede dallerweb.dk Nybegynder
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>";

} ?>
Avatar billede retep Nybegynder
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");
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