Ik heb een site gemaakt, deze werkt met sessions voor het inlog systeem.
Het inloggen werkt goed, maar soms sluit hij zonder enige reden een sessie. Dus na het inloggen over de site browsen dan wil hij nogwel eens spontaan uigelogged zijn. Dit is erg vervelend voor klanten.
Ik ben op het moment _denk_ ik scriptblind, dus dat ik over iets kleins heen kijk.
Ik maak gebruik van een includesysteem voor mijn functies en dingen die op iedere pagina geladen moetten worden.
Dit is de basis van mijn code, ik heb het net 2x nagelopen maar vedder gebruik ik niets speciaals, alleen wat je hier ziet.
Het probleem zit hem er in dat _OPEENS_ de sessie verloren gaat, zonder dat ik het venster sluit. Ik heb nog niets gebruikt voor cookie handlers(enzo) voor het langer bestaan van een sessie, dit is nog niet nodig.
Mijn vraag:
Waarom sluit hij zomaar mijn sessie? Is dit mijn PHP Code of mijn hosting die iets vaags doet met sessies? Ik kan vanuit mijn ftp(hoofdgebruiker) niet de sessie directory zien, dit is namelijk een shared server waar ik het script op aan het testen ben. Dus ik kan niet uitsluiten dat mijn hosting zomaar mijn sessies afbreekt.
Mijn hosting zecht dat ze dit NIET doen, maar ik vertrouw ze voor geen meter(ja ik ga er asap weg, eerst eigen server online hebben).
Het probleem is dat het de ene keer WEL werkt, de andere keer NIET.
Soms kan ik met gemak 3 a 4 uur op de site werken zonder dat ik mezelf opnieuw hoef in te loggen. Soms moet ik 10x in 5 minuten inloggen.
Als het in het begin goed wekt dan blijft het werken. Werkt het niet goed dan ben ik binnen 2 a 3 nieuwe pagina's weg.
Ik kan vaak dus de admin panel wel openen, maar als ik dan iets wil veranderen(dus nog 1 of 2 klikken) dan is _OPEENS_ de gebruiker uitgelogged.
Voor de liefhebbers:
phpinfo();
Het inloggen werkt goed, maar soms sluit hij zonder enige reden een sessie. Dus na het inloggen over de site browsen dan wil hij nogwel eens spontaan uigelogged zijn. Dit is erg vervelend voor klanten.
Ik ben op het moment _denk_ ik scriptblind, dus dat ik over iets kleins heen kijk.
Ik maak gebruik van een includesysteem voor mijn functies en dingen die op iedere pagina geladen moetten worden.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| //dit staat boven alle pagina's include "session.php"; //session's laden $sessionnaampje = "naam"; //meer includes maar niet zinnig voor dit topic //session.php session_start(); $gebruikersinfo = array(); if (session_is_registered($sessionnaampje)) { //maken van array's op basis van de session userid. //deze array bevat informatie als: userid, rechten, etc. $gebruikersinfo["db"] = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE gebruikersid=".$_SESSION[$sessionnaampje]["id"]." LIMIT 1;")); $gebruikersinfo["lgt"] = 1; } else { //als sessie niet gezet is, dan even de rechten op basic zetten. $gebruikersinfo["db"]["access"] = 200; //anonymous $gebruikersinfo["lgt"] = 0; //niet ingelogged } //login.php //het ding dat bovenaan alle pagina's staat //cache killer(via headers), alleen bij login/out. //na post(dus aanmaken van sessie) komt dit, hoe ik post is niet relevant denk ik. //de $id komt uit de database, deze wordt goed gezet iig. $_SESSION[$sessionnaampje]["id"] = $id; //admin.php //het ding dat bovenaan alle pagina's staat if ($gebruikersinfo["lgt"]==1) { if ($gebruikersinfo["db"]["access"]>=2000) { //gebruikersrechten boven 2000, dus je mag dit en dat doen. } else { //je mag niet hier komen } } else { $_SESSION["to"] = "admin.php"; //hierheen NA het succesvol inloggen. header("Location: login.php"); } |
Dit is de basis van mijn code, ik heb het net 2x nagelopen maar vedder gebruik ik niets speciaals, alleen wat je hier ziet.
Het probleem zit hem er in dat _OPEENS_ de sessie verloren gaat, zonder dat ik het venster sluit. Ik heb nog niets gebruikt voor cookie handlers(enzo) voor het langer bestaan van een sessie, dit is nog niet nodig.
Mijn vraag:
Waarom sluit hij zomaar mijn sessie? Is dit mijn PHP Code of mijn hosting die iets vaags doet met sessies? Ik kan vanuit mijn ftp(hoofdgebruiker) niet de sessie directory zien, dit is namelijk een shared server waar ik het script op aan het testen ben. Dus ik kan niet uitsluiten dat mijn hosting zomaar mijn sessies afbreekt.
Mijn hosting zecht dat ze dit NIET doen, maar ik vertrouw ze voor geen meter(ja ik ga er asap weg, eerst eigen server online hebben).
Het probleem is dat het de ene keer WEL werkt, de andere keer NIET.
Soms kan ik met gemak 3 a 4 uur op de site werken zonder dat ik mezelf opnieuw hoef in te loggen. Soms moet ik 10x in 5 minuten inloggen.
Als het in het begin goed wekt dan blijft het werken. Werkt het niet goed dan ben ik binnen 2 a 3 nieuwe pagina's weg.
Ik kan vaak dus de admin panel wel openen, maar als ik dan iets wil veranderen(dus nog 1 of 2 klikken) dan is _OPEENS_ de gebruiker uitgelogged.
Voor de liefhebbers:
phpinfo();