Avatar billede festhest Nybegynder
07. marts 2002 - 20:56 Der er 5 kommentarer og
1 løsning

session variabler

Jeg har en fil som indeholder følgende kode:

function CheckLogin($username, $password) {
    $sql = mysql_query("SELECT * FROM tbl_users");

    while ( $field = mysql_fetch_array( $sql ) ) {
        if ( $field["username"] == $username && $field["password"] == $password ) {           
            $user_id = $field["id"];
            session_register("user_id");
            $user_name = $field["name"];
            session_register("user_name");
            $user_color = $field["color"];
            $user_email = $field["email"];           
           
            return header("location:test/test.php?");
           
        }
        else {
            return header("location:login.php?error=login");
        }
    }
}


if ( isset($mode) == "login" ) {
    CheckLogin($username, $password);
}

filen er included i en anden fil hvori der oprettes db-connection og session_start(). Som I kan se redirecter den til test.php som så skal udskrive disse session variabler, men der kommer en fejlmeddelse der siger:

Warning: Undefined variable: user_id in c:\inetpub\wwwroot\test\test.php on line 5

Variblerne må åbenbart ikke blive registeret, hvad kan der være galt?
Avatar billede thomashove Nybegynder
07. marts 2002 - 22:02 #1
det kan være flere ting...

1) Har du sat php.ini op til at håndtere sessions (typisk heri fejlen ligger)

2) har læst om folk der havde problemer hvis session_start() kaldes inde i en funktion (så bliver variablerne ikke globale)

har du prøvet at lave en simpel test session og se om den virker ??

/Hove
Avatar billede festhest Nybegynder
07. marts 2002 - 22:07 #2
ja, jeg har lavet en simpel test og det virkede, prøver lige med global ...
Avatar billede festhest Nybegynder
07. marts 2002 - 22:09 #3
nej det var sku ik det
Avatar billede festhest Nybegynder
07. marts 2002 - 22:12 #4
jo, det var sku det. det var jeg sku ik klar over. Men mange tak da :)
Avatar billede thomashove Nybegynder
07. marts 2002 - 22:16 #5
du kunne også forsøge med en "initialisering" af din session der hvor du kalder session_start f.eks.

$user_id="test_id";
$user_name="test_user_name";

session_start();
session_register("user_id");
session_register("user_name");

og så bare sige $user_id = $field["id"]; (dvs. undlade at register i din mysql funktion)

hermed kan du teste om du overhovedet har kontakt til din session
Avatar billede thomashove Nybegynder
07. marts 2002 - 22:17 #6
ups... nåede ikke lige at se din sidste kommentar ;o)
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