Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Sessions werkt niet met cookies...

Remytje
2 antwoorden
  • 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 www.webmasterbase.com
    [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
  • 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.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.