11. februar 2006 - 12:39Der er
20 kommentarer og 1 løsning
Har problemer med sessions
Jeg har et problem med sessions... et login systsem.
if($login) {
$query = mysql_query("SELECT * FROM kalender_user WHERE b = '".$_POST[bruger]."' AND p = '".$_POST[password]."' LIMIT 1")or die (mysql_error()); if(mysql_num_rows($query)>0) { $row = mysql_fetch_array($query); session_start(); $_SESSION['lvl'] = $row[lvl]; $_SESSION['bruger'] = $bruger; $_SESSION['password'] = $password; } }
Den kontrollere helt fint om sessions er sat... neden for denne kode har jeg en kontrol af hvad lvl er sat og den fungere også! Men når jeg så skifter side i browseren så dør alle sessions!! Jeg require en head.php på hver side som indeholder <? session_start(); ?> i toppen... så hvorfor dør min session?!
Du kan ikke sætte session_start(); det sted du har. session_start(); SKAL altid været i toppen af dokumentet
Synes godt om
Slettet bruger
11. februar 2006 - 12:48#2
Du skal bare kalde session_start() inden der sendes noget til klienten, p.g.a. headers. Men... Kører du det på en Windowsmaskine? Og har du regster_globals slået til? For jeg har før set at det kunne give problemer.
ja det er en windows maskine... og regster_globals er slået til. og så har jeg jo session_start(); i toppen af alle mine dokumenter inden noget bliver sendt :)
Synes godt om
Slettet bruger
11. februar 2006 - 12:50#4
- Øh, men noget helt andet er... Lige pt. er din session_start() betinget af at der findes en bruger udfra de POST-værdier. Men det gælder måske kun den side der?
Synes godt om
Slettet bruger
11. februar 2006 - 12:51#5
Ah du.... Prøv lige at bruge session_register() til at sætte dine sessions med i stedet for.
Denne kode fungere helt fint... jeg kan se hvis jeg laver en exit; efter login at den sætter sessions... problemet er når den så går ned til lvl og skal kalde framet så sender den ikke sessions til den nye side så jeg for bare en "Du er ikke logget ind"... jeg har <? session_start(); ?> i toppen af alle mine dokumenter!
Synes godt om
Slettet bruger
11. februar 2006 - 12:56#9
Jeg ville nok overveje at slå register_globals fra og se om det virker, når du alligevel benytter de korrekte arrays m.v.
Synes godt om
Slettet bruger
11. februar 2006 - 12:58#10
Hehe, du behøver ikke alle de <? session_start(); ?> rundt omkring. Én enkelt i toppen af dokumentet er tilstrækkeligt. Men prøv lige at tjekke om ikke det er kombinationen af Windows og register_globals der driller dig.
så kontrollen af sessions if(!$_SESSION['bruger']) { echo "<span class=text3>Du er ikke logget ind.</span>"; exit; } i de nye dokumenter bliver aktiveret...
Jeg har testet det på min apache server windows xp... der fungere det fint med globals on... det har tidligere virker på webhotelets server, men det gør det ikke nu... de har ikke ændret i deres settings siger de...
Jeg kan se min kode fungere ... jeg har testet den på andre webhotels nu... så fejlen må ligge hos webhotelet... tak for hjælpen smid et svar :)
Synes godt om
Slettet bruger
13. februar 2006 - 10:14#21
Selv tak. Godt du fandt ud af det.
Synes godt om
Ny brugerNybegynder
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.