[PHP] Cookie bestaat en toch weer niet

Pagina: 1
Acties:

Onderwerpen


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 14:09

Kaastosti

Vrolijkheid alom!

Topicstarter
Ik heb een framewerk waar pagina's in staan. Die pagina's zijn voor een deel php, zoals een loginscript en een forum. Als ik m'n username en password invul in dat login script wordt het gecontroleerd en komt er te staat 'Logged in as: Kaastosti'.

So far so good, kennelijk vindt ie dus de cookie. Ook als ik 'm refresh of in een nieuwe browser open vindt ie de cookie en sta ik nog steeds logged in.

Als ik echter naar m'n forum kijk, hoort een ingelogde gebruiker meer opties te hebben (zoals posten). Deze worden dmv een cookie check op het scherm gezet:

if(isset($_COOKIE['login_check']))echo "<a href='./post.php'>Post a message</a> || ";

Ik heb een klein bestandje gemaakt wat puur controleerd of de cookie er is. Als ik DAT bestandje open, krijg ik de melding "undefined index 'login_check'", wat er op duidt dat de cookie toch niet bestaat.

Het loginscript staat overigens in een andere directory dat het forum, aangezien ik die structuur een beetje overzichtelijk wil houden. Waarom bestaat die cookie in de ene pagina wel en in de andere niet?

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • sjokki
  • Registratie: Juli 2002
  • Niet online
Heb je de cookie-specificaties op http://wp.netscape.com/newsref/std/cookie_spec.html en http://zvon.org/tmRFC/RFC2965/Output/index.html gelezen? En dan met name de gedeeltes over het path-attribuut.

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 14:09

Kaastosti

Vrolijkheid alom!

Topicstarter
Nu wel :)
Als ik het goed begrijp moet ik dan dus die cookie als volgt setten:

SetCookie('login_check', $subscriber, time()+1800,'../');

Als ik het op deze manier doe, wordt de cookie helemaal niet geplaatst. Ook alleen '/' er tussen of "/" helpt daar niet bij jammergenoeg.

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 14:09

Kaastosti

Vrolijkheid alom!

Topicstarter
Weet niemand hoe dit op te lossen is? Ik heb inmiddels het loginscript in de root gezet en dan herkent ie 'm wel. Da's leuk, maar het is natuurlijk geen mooie oplossing.

Het ziet er zo uit:
code:
1
2
3
4
5
6
/root
   index.html
   /login
      login.php
   /forum
      forum.php

Ik gebruik login.php om die cookie te setten en in forum.php wordt ie gebruiken. Je zou zeggen dat het pad van de cookie dan '../' moet zijn.. maar dat wil dus niet werken om een of andere vage reden.

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.