[php] probleem met sessions, telkens weer uitgelogd

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
Ik zit met een probleempje, ik heb een website die werkt met gebruikertjes, deze loggen in met login.php, deze registreert na de validatie 2 sessies:

code:
1
2
        session_register(sess_id);
        session_register(sess_loginnaam);


Het hele systeem heeft goed gewerkt, alleen nu sinds een tijdje log je in, dan klik je bijvoorbeeld naar persoonlijkepagina.php welke controleerd of de sessie nog geregistreerd is:

code:
1
if (session_is_registered("sess_loginnaam") && session_is_registered("sess_id")) {


en soms werkt dat 1 keer, dan kom ik bij mn eigen gegevens, maar vaak zegt ie dat je niet ingelogd bent. voorheen heeft dit systeem gewoon goed gewerkt, dat is het rare :?

als jullie meer info willen hebben dan zal ik die met alle plezier geven, ik *moet* dit gewoon oplossen! ben tot alles in bereid maar ik weet het echt niet meer waar ik het moet zoeken :(

ik zit te denken dat de /temp dir vol zit ? dit is slechts een gissing, en tsjah volgens mij kan ik dat ook niet controleren omdat dit gehost wordt bij een ander bedrijf...

owja, nog een vraag: zou ik dit probleem kunnen work-arounden met een eigen session set handler die alles opslaat in mysql? dan heb je er ook meer controlle over lijkt me....

[ Voor 10% gewijzigd door M4RTiN op 29-12-2003 17:23 . Reden: extra vraagje ]


Acties:
  • 0 Henk 'm!

  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

ff je hosting provider bellen? :)

Acties:
  • 0 Henk 'm!

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
zou het probleem inderdaad aan hun kant liggen, met hun contact opnemen is een landurig probleem en erg moeilijk. dan moet ik wel zeker weten dat het aan hun kan zit, wil ik dit gaan regelen... :(

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Zelf opslaan van sessies heeft imho niet zo veel voordelen boven de standaard session handlers.

Waar je iig kien op moet zijn met sessions is het gebruik van $_SESSION en session_register. Die werken niet zo lekker samen.
offtopic:
kan me voorstellen dat je een wijziging hebt gedaan en even "de goede manier bent gaan gebruiken" terwijl de oude pagina's nog de oude manier gebruiken


Verder zou je even de cookielifetime van je sessie kunnen checken.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:46

crisp

Devver

Pixelated

Ook de PHP versie kan nog wel eens van belang zijn, 4.1.2 is bijvoorbeeld ontzettend buggy met sessies

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
als ik met phpinfo(); tjek naar: session.cookie_lifetime, dan is dat de waarde "0";

kan dit het geval zijn??

EDIT php versie 4.3.3

[ Voor 16% gewijzigd door M4RTiN op 29-12-2003 17:36 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Nee, want als je vervolgens de manual leest, zie je dat als de cookie lifetime 0 is, de cookie getrashed wordt bij afsluiten van de browser.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
precies, en mij probleem ligt meer in het aard, dat als ik nog gewoon bezig ben in de site, zonder af te sluiten, dat er al geen sessie meer is

verder gebruik ik nog

code:
1
session.use_trans_sid   : On


dit leek mij wel handig, zo wordt er automtisch een sessieID aan de url gegeven

Acties:
  • 0 Henk 'm!

Verwijderd

Probeer je sessie-files eens op te slaan in een aparte directory (die dus alleen gebruikt wordt door jouw scripts). Ik heb pas dit probleem ook gehad (de garbage collector van PHP was wat overactief, gooide elke x aantal minuten alle sessies weg), nadat ik een eigen directory had aangemaakt voor de sessies, was het probleem verholpen.

Het zou volgens mij niet moeten kunnen dat PHP zelf sessies weg gaat gooien, maar bij mij werkte deze oplossing. Tip: ini_set('session.save_path', 'pad_naar_jouw_directory');

Acties:
  • 0 Henk 'm!

  • Reggino
  • Registratie: Augustus 2002
  • Laatst online: 29-11-2023

Reggino

Je weet toch

Heb een tijdje geleden ook soortgelijke rare problemen gehad met sessies... Bleek dat ik in een file die in het begin van mijn script geïnclude werd (een klasse-definitie) ik per ongeluk een spatie had geprint. (dus nog voordat de sessie geregistreerd werd, er stond nog een spatie ergens na een ?> in een klassedefinitie )

Dubbelcheck even of dat het probleem niet is...

[ Voor 9% gewijzigd door Reggino op 30-12-2003 03:04 ]

Het ouwe moet eerst op!


Acties:
  • 0 Henk 'm!

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
ik heb nog ff geklooid met die ini_set, maar daar ben ik niet gemachtigd voor helaas,
code:
1
2
3
Warning: ini_set(): SAFE MODE Restriction in effect. 
The script whose uid is 506 is not allowed to access /var/www/html 
owned by uid 0 in



@ reginno, ik include op elke pagina een config.php, als deze whitespaces zeg maar heeft, dan kan dat kwaad?

[ Voor 1% gewijzigd door M4RTiN op 30-12-2003 10:52 . Reden: layout beter ]


Acties:
  • 0 Henk 'm!

  • rvrbtcpt
  • Registratie: November 2000
  • Laatst online: 18:43
Waarom gebruik je niet de nieuwe $_SESSION variabelen?
Dit probleem heb ik ook gehad omdat de provider PHP even had geupdate van een 4.0 naar een 4.3 versie.

Je kunt beter je programmeerstijl aanpassen naar de PHP versie, scheelt je een hoop gepruts denk ik.

Acties:
  • 0 Henk 'm!

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07 12:07
dit is vast een stupid comment, maar ik had net hetzelfde totdat ik in mijn config zag dat ik use_cookies op 0 had staan. (en geen transid gebruiken vanwege session hijacking)

Acties:
  • 0 Henk 'm!

  • Reggino
  • Registratie: Augustus 2002
  • Laatst online: 29-11-2023

Reggino

Je weet toch

Zoals ik al zei heb ik zelf soortgelijke problemen gehad.... controleer die whitespaces maar ff... Ik denk dat daar je probleem zit.

Ben benieuwd of dat het was.

[ Voor 7% gewijzigd door Reggino op 30-12-2003 12:33 ]

Het ouwe moet eerst op!


Acties:
  • 0 Henk 'm!

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
$_SESSION heb ik al geprobeerd, precies hetzelfde.

ik kan tot nu toe nog geen whitespaces vinden, maar ik ga vast en zeker nog regel voor regel doorlopen! ik wil het graag weer werkend hebben.

ik heb nu ook al contact met de hosting provider, die gaan aan hun kant kijken of er *iets* loos kan zijn. we wachten af.

ik heb de site ff "offline" gehaald om zelf te testen, het lijkt trouwens nu de hele ochtend wel goed te gaan :)

Acties:
  • 0 Henk 'm!

Verwijderd

Een andere oplossing is wellicht een custom session handler, bijvoorbeeld eentje die de session data in een db opslaat.
zie: http://nl.php.net/manual/...sion-set-save-handler.php.
op deze manier heb je meteen een stuk meer controle over je sessions (en de veiligheid ervan dus!).
ik zou trouwens geen transparant session id gebruiken (dus het session id meegeven aan je url). php past dan ook je form elementen aan (zet een hidden element neer met het session id), met als gevolg dat je formpje niet meer xhtml 1.0 strict is (wellicht geef je er niet om, maar het is wel zo netjes :)). Het is wel mogelijk om het aanpassen vanje forms uit te schakelen (en je url seperator aan te passen naar utf-8 compatible tekens), maar dan is het idee van een transparant session id een beetje weg.
just my 2 cents..
Pagina: 1