[PHP/SESSIES] Aantal vragen

Pagina: 1
Acties:

Onderwerpen


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik ben deze vakantie voor het eerst bezig om in een PHP applicatie goed gebruik te maken van sessies en cookies. Na wat zoeken op PHP.net en prullen met scriptjes, heb ik een aantal vragen. Ik ben nl. wat in de war geraakt over een aantal begrippen:

• als een sessie geen cookie is, waarom zie ik dan mijn PHPSESSID in de cookies array bij print_r($_COOKIE)? Als ik mijn browser expliciet instel op het niet accepteren van alle cookies, werken ook mijn sessies niet. Dit geeft aan dat ook een sessie een cookie op de client achterlaat
• maar als een sessie dan ook een cookie op de client achterlaat, waarom zie ik die dan niet terug in de Temporary Internet Files van Internet Explorer? (Zie hem overigens wel in het cookie overzicht van bv. Opera en Netscape)
• als ik clientside een cookie wegschrijf, en daar geen expiration date bij zet, dan gedraagt die cookie zich als een sessie (met andere woorden: de inhoud vervalt wanneer de browser afgesloten wordt)?
• als elk domein maar 1 cookie weg mag zeggen op een client computer, waarom hebben veel (o.a. PHP) cookie functies dan een naam als setcookie? Net alsof je meerdere cookies kunt zeggen. Beter zou dan toch zijn setcookievalue() oid?
• als ik voor de ene cookievalue een andere expirationdate zet dan voor een andere, dan wil dat zeggen dat de ene variabele in dat cookie eerder verloopt dan de andere variabele? Je zou dus eigenlijk moeten zeggen "de expiration van deze cookie variabele is 2 mei" in plaats van "dit cookie verloopt op 2 mei". Of zit ik er nu helemaal naast?

Ik hoop op een paar bevestigende ;) antwoorden, want ik vind het wat verwarrend allemaal...

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • HielkeJ
  • Registratie: Juli 2001
  • Niet online
Reveller schreef op 12 augustus 2004 @ 18:33:
• als een sessie geen cookie is, waarom zie ik dan mijn PHPSESSID in de cookies array bij print_r($_COOKIE)? Als ik mijn browser expliciet instel op het niet accepteren van alle cookies, werken ook mijn sessies niet. Dit geeft aan dat ook een sessie een cookie op de client achterlaat
De Server moet toch weten met welke computer hij te maken heeft?
• maar als een sessie dan ook een cookie op de client achterlaat, waarom zie ik die dan niet terug in de Temporary Internet Files van Internet Explorer? (Zie hem overigens wel in het cookie overzicht van bv. Opera en Netscape)
Misschien ergens anders opgeslagen? :?
• als ik clientside een cookie wegschrijf, en daar geen expiration date bij zet, dan gedraagt die cookie zich als een sessie (met andere woorden: de inhoud vervalt wanneer de browser afgesloten wordt)?
Volgens mij klopt dit :)
• als elk domein maar 1 cookie weg mag zeggen op een client computer, waarom hebben veel (o.a. PHP) cookie functies dan een naam als setcookie? Net alsof je meerdere cookies kunt zeggen. Beter zou dan toch zijn setcookievalue() oid?
Van wie mag jij maar 1 cookie maken?
• als ik voor de ene cookievalue een andere expirationdate zet dan voor een andere, dan wil dat zeggen dat de ene variabele in dat cookie eerder verloopt dan de andere variabele? Je zou dus eigenlijk moeten zeggen "de expiration van deze cookie variabele is 2 mei" in plaats van "dit cookie verloopt op 2 mei". Of zit ik er nu helemaal naast?
Hoe wil jij een verloop datum in een cookie kwijt kunnen?
Ik hoop op een paar bevestigende ;) antwoorden, want ik vind het wat verwarrend allemaal...
Ik hoop dat genoeg geholpen heb zo :)

[ Voor 8% gewijzigd door HielkeJ op 12-08-2004 18:42 ]


  • ironx
  • Registratie: Augustus 2001
  • Laatst online: 01-07 19:42
Een hele hoop wat je vraagt kan je terugvinden in het configuratiebestand van PHP (php.ini):

code:
1
2
; Name of the session (used as cookie name).
session.name = PHPSESSID


code:
1
2
; Whether to use cookies.
session.use_cookies = 1


code:
1
2
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0


code:
1
2
; The domain for which the cookie is valid.
session.cookie_domain =


Je kan ook veel terugvinden op php.net:
SetCookie
Sessions


This posting is provided "AS IS" with no warranties, and confers no rights.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Reveller schreef op 12 augustus 2004 @ 18:33:
• als een sessie geen cookie is, waarom zie ik dan mijn PHPSESSID in de cookies array bij print_r($_COOKIE)? Als ik mijn browser expliciet instel op het niet accepteren van alle cookies, werken ook mijn sessies niet. Dit geeft aan dat ook een sessie een cookie op de client achterlaat
Een sessie gebruikt OF een cookie, OF geeft een id door via de GET array.
Reveller schreef op 12 augustus 2004 @ 18:33:
• maar als een sessie dan ook een cookie op de client achterlaat, waarom zie ik die dan niet terug in de Temporary Internet Files van Internet Explorer? (Zie hem overigens wel in het cookie overzicht van bv. Opera en Netscape)
IE gebruikt een aparte map "Cookies" in je Documents and Settings map.
Reveller schreef op 12 augustus 2004 @ 18:33:
• als ik clientside een cookie wegschrijf, en daar geen expiration date bij zet, dan gedraagt die cookie zich als een sessie (met andere woorden: de inhoud vervalt wanneer de browser afgesloten wordt)?
Volgens mij wordt er dan een default duration aangehouden, maar dat hangt van je server af lijkt me.
Reveller schreef op 12 augustus 2004 @ 18:33:
• als elk domein maar 1 cookie weg mag zeggen op een client computer, waarom hebben veel (o.a. PHP) cookie functies dan een naam als setcookie? Net alsof je meerdere cookies kunt zeggen. Beter zou dan toch zijn setcookievalue() oid?
SetCookie() zet toch een waarde in je cookie? Dan doet het toch precies wat je verwacht? :?
Reveller schreef op 12 augustus 2004 @ 18:33:
• als ik voor de ene cookievalue een andere expirationdate zet dan voor een andere, dan wil dat zeggen dat de ene variabele in dat cookie eerder verloopt dan de andere variabele? Je zou dus eigenlijk moeten zeggen "de expiration van deze cookie variabele is 2 mei" in plaats van "dit cookie verloopt op 2 mei". Of zit ik er nu helemaal naast?
Volgens mij gaat die expiration date over je hele cookie. :)

[ Voor 4% gewijzigd door NMe op 12-08-2004 18:45 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

als een sessie geen cookie is, waarom zie ik dan mijn PHPSESSID in de cookies array bij print_r($_COOKIE)? Als ik mijn browser expliciet instel op het niet accepteren van alle cookies, werken ook mijn sessies niet. Dit geeft aan dat ook een sessie een cookie op de client achterlaat
Een sessie is geen cookie. Een sessie is een mechanisme om verzoeken van dezelfde gebruiker als zodanig te herkennen. Hiervoor gebruikt PHP (afhankelijk van de configuratie) meestal tijdelijke cookies.
maar als een sessie dan ook een cookie op de client achterlaat, waarom zie ik die dan niet terug in de Temporary Internet Files van Internet Explorer? (Zie hem overigens wel in het cookie overzicht van bv. Opera en Netscape)
Misschien schrijft Internet Explorer ze wel helemaal niet weg, maar bewaart ze in geheugen. Het zijn immers tijdelijke cookies.
als ik clientside een cookie wegschrijf, en daar geen expiration date bij zet, dan gedraagt die cookie zich als een sessie (met andere woorden: de inhoud vervalt wanneer de browser afgesloten wordt)?
Nee, een sessie is geen cookie. Een sessie cookie is wel een tijdelijke cookie.
als elk domein maar 1 cookie weg mag zeggen op een client computer, waarom hebben veel (o.a. PHP) cookie functies dan een naam als setcookie? Net alsof je meerdere cookies kunt zeggen. Beter zou dan toch zijn setcookievalue() oid?
Je kunt meerdere cookies sturen, met verschillende namen weliswaar.
als ik voor de ene cookievalue een andere expirationdate zet dan voor een andere, dan wil dat zeggen dat de ene variabele in dat cookie eerder verloopt dan de andere variabele? Je zou dus eigenlijk moeten zeggen "de expiration van deze cookie variabele is 2 mei" in plaats van "dit cookie verloopt op 2 mei". Of zit ik er nu helemaal naast?
1 cookie heeft maar 1 expiry date. Je kunt wel meerdere cookies zetten met verschillende expiry dates.

[ Voor 4% gewijzigd door Verwijderd op 12-08-2004 21:32 ]