Ga naar inhoud

[PHP] Sessions werkt niet met cookies...


Aanbevolen berichten

Wat ik op het internet heb gelezen is dat, sessions ook met cookies werken, door het PHPSESSID op te slaan in een cookie. Indien de browser cookies niet ondersteunt dan kun je de sessie ook oproepen met SID in de URL. zie een artikel op [url=http://www.webmasterbase.com/article/319/78]www.webmasterbase.com[/url] [quote:bc472ec700]...a PHP session works by automatically setting a cookie in the user's browser containing a session ID, which is a long string of letters and numbers that serves to uniquely identify that user on your site for the duration of the visit. The browser then sends that cookie along with every request for a page from your site so that PHP can use it to identify which of potentially many sessions-in-progress the request belongs to. Using a set of temporary files stored on the Web server, PHP keeps track of the variables that have been registered in each session and their values.[/quote:bc472ec700] Het oproepen van SID in de URL, vermijd ik liever omdat het dan een lange URL wordt (en minder veilig is? klopt dit), tenzij het echt niet anders kan (browser accepteerd geen cookies). Mijn probleem is nu dat bij elke session_start() er een nieuwe sessie wordt aangemaakt als deze niet in de URL van de opgevraagde pagina staat (bv index?PHPSESSID=xxx). Hij leest de sessie-id dus niet uit een cookie. Dit vind ik raar aangezien ik browsers op verschillende pc heb geprobeerd, waar het accepteren van cookies mogelijk is. In php.ini staat het gebruik van cookies voor sessions op true. Ik was in de veronderstelling dat session_start() ook direct een cookie aanmaakt (als de browser het ondersteunt), maar dat werkt dus niet. Heeft iemand hier een oplossing voor? Moet ik apart nog een cookie wegschrijven met het sessie-id? Of heb ik een instelling fout? Nog een ander probleem.... Als ik de browser afsluit en opnieuw open en dan naar de pagina ga [i:bc472ec700]index.php?PHPSESSID=xxx[/i:bc472ec700] dan opent deze gewoon, dus de sessie is niet verwijderd. Ik dacht dat dit automatisch gebeurde... Moet ik dan een timer instellen? P.S. Ik gebruik: Apache, PHP, MySQl draaien als service/isapi
Link naar reactie
Wanneer wordt er nu percies een nieuwe sessie gestart? Als je van pagina wisselt (binnen dezelfde site) of als je je browser sluit en later de pagina opnieuw bezoekt? Als het optie twee is: dat is normaal ;) Het sessieCookie is namelijk tijdelijk en blijft niet op de client staan, maar wordt verwijderd als je de browser sluit.
Link naar reactie
Het is optie een en dat is nu juist mijn probleem :cry: . Als je naar een andere pagina gaat (binnen dezelfde site), dan kan hij op een of andere manier niet het sessieCookie lezen. Dit (in mijn ogen) kan twee dingen betekenen: [list:408ea1cf72]er is een sessieCookie op de client aangemaakt, maar deze kan niet gelezen worden[/list:u:408ea1cf72] [list:408ea1cf72]er is helemaal geen sessieCookie op de client aangemaakt, dus kan hij ook niets lezen[/list:u:408ea1cf72] p.s. de browsers op verschillende pc's en hosts accepteerden cookies... Er wordt wel keurig een tijdelijk sessie-bestand aangemaakt in mijn webserver-'tmp'-map, en ik zie dat er een nieuwe bestandje wordt aangemaakt als ik naar een andere pagina (binnen dezelfde site) ga, wat dus niet de bedoeling is. Als ik echter naar de andere pagina ga met in de URL het sessie-id dan wordt er geen nieuwe sessie gecreerd en werkt alles naar behoren. Ik heb het probleem ondertussen opgelost door een ander loginsysteem mbv de [i:408ea1cf72]'PHP_AUTH_USER'[/i:408ea1cf72] en [i:408ea1cf72]'PHP_AUTH_PW'[/i:408ea1cf72] die de gegevens controleert met een database. Dit kwam ik tegen op het web op zoek naar een oplossing en lijkt mij veiliger (klopt dit?). Echter er moet ook een shoppingcart komen waarvoor ik echt sessions wil gaan gebruiken, dus ik ben nog steeds op zoek naar een oplossing voor dit probleem. Hopelijk komt dit probleem jouw bekend voor? Kun je in Apache of PHP in de configuratie het schrijven van cookies uitzetten?
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...