[PHP] De bekende cookie-path vraag

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Nu online

Kaastosti

Vrolijkheid alom!

Topicstarter
Ik weet het, hier zijn meer topics over, maar in veel van die gevallen komt men er gewoon ook al niet uit. Daarom hier weer eens de vraag hoe het nu precies zit met het zetten van cookies die overal binnen jouw site te benaderen zijn.

Als voorbeeld (en tevens mijn probleem):

/login/check.php
Hier wordt de invoer van de gebruiker (username / password) gecontroleerd met de informatie die in de database staat. Bij een correcte login wordt dit uitgevoerd:
PHP:
1
2
SetCookie('login', $username, time()+2620800, '../');
echo "COOKIE GEZET";

Ik krijg dan ook netjes COOKIE GEZET te zien als ik correct inlog.

Als iemand ingelogd is, moet dat uiteraard niet opnieuw gebeuren, dus heb ik een kleine if-statement opgenomen bij het login-scherm (/login/login.php):
PHP:
1
2
3
4
5
if(isset($_COOKIE['login'])){
    echo "<table align='center'>";
    echo "<tr><td align='center'>You are already loggin in as:</td></tr>";
    echo "<tr><td align='center'>".$_COOKIE['login']."</td></tr>";
}

Voor dit kleine stukje had ik even geen zin om php tussen { } af te sluiten :)... voor zover ik weet en heb kunnen vinden hier op GoT en php.net zou die if-statement zo goed moeten zijn. Ik heb al eerder met cookies gewerkt, alleen maakte ik die in de root aan, wat natuurlijk niet zo netjes is.

Nu maak ik die cookie aan en geef als pad '../', wat in de root uit zou moeten komen. Het wazige is, dat zowel check.php als login.php in dezelfde directory staan en dat het dus sowieso zou moeten werken.

Het resultaat van inloggen en opnieuw de login pagina aanvragen is dat je weer de 'normale' login pagina krijgt, kennelijk wordt de if-statement als false bestempeld... waaaaroommm? :?

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


Acties:
  • 0 Henk 'm!

  • sorted.bits
  • Registratie: Januari 2000
  • Laatst online: 16-09 10:05
ten eerste, kan je nooit gegevens uit en naar een cookie schrijven als er al op het beeld ge-echo'd is, dus misschien is dat het ?

gewoon bovenaan pagina cookie inladen in een variabele

Acties:
  • 0 Henk 'm!

Verwijderd

Wat gebeurt er als je het cookie path op '/' instelt? (Wat overigens een veel gebruikelijkere notatie van de 'root' directory is)

Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Nu online

Kaastosti

Vrolijkheid alom!

Topicstarter
Voor het maken van de cookie wordt er niets ge-echo'd, dat mag geen probleem zijn.
Als ik path op '/' instel blijft het resultaat helaas hetzelfde.

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


Acties:
  • 0 Henk 'm!

Verwijderd

Tja, ik durf het bijna niet te vragen, maar welke PHP versie gebruik je, en staat je datum wel goed? :P
En is er wel iets te zien in je cookies directory?

Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Nu online

Kaastosti

Vrolijkheid alom!

Topicstarter
Sjit toch nog vergeten... ik dacht er nog wel aan om meteen alle info te posten :P
PHP versie 4.2.3
Datum staat goed
Ik de cookies dir kan ik 'm niet vinden.. maar dat kan ook aan mij liggen :P

[ Voor 23% gewijzigd door Kaastosti op 09-01-2003 15:01 ]

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
  • Nu online

Kaastosti

Vrolijkheid alom!

Topicstarter
Die cookie wordt dus inderdaad niet eens neergezet. Ik heb m'n cookies dir leggemaakt en opnieuw gekeken, komt niets in. Er is dus iets mis met het zetten van de cookies. In m'n php.ini staat het gebruik van cookies aan, dus ook dat mag geen probleem zijn.

Het rare is dat een andere site die ik heb staan die ook cookies gebruikt WEL gewoon werkt met exact dezelfde code voor het neerzetten. Ik zoek gewoon verder waar het aan kan liggen, maar ik heb nu al 4 uur zitten staren en proberen zonder resultaat :(

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


Acties:
  • 0 Henk 'm!

Verwijderd

heeft $username wel een value?
setcookie("cookie_name", $cookie_value, time() + 31536000, "/"); // never fails with me :)

Het is trouwens logisch dat je COOKIE GEZET te zien krijgt, staat niks van een if-statement daar.

[ Voor 36% gewijzigd door Verwijderd op 09-01-2003 19:39 ]


Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Nu online

Kaastosti

Vrolijkheid alom!

Topicstarter
Ja, die heeft een waarde. Ik heb alles al laten echo-en en dat werkt. Overigens maar het niet uit, aangezien '' ook een geldige waarde is. Er wordt dan gewoon een cookie gezet zonder inhoud. Dit stukje code heeft bij mij ook altijd gewerkt, alleen nu dus spontaan niet meer.
Overigens staat dat hele gebeuren natuurlijk wel in een if-statement, anders gaat het nergens over. Dat zeg ik er ook bij, zij het met andere woorden :)

Ik gebruik nu overigens een $hash = md5($username.$password); voor in de cookie, aangezien daar niet mee te prutten valt :), het resultaat is jammergenoeg hetzelfde, geen cookie...

[ Voor 11% gewijzigd door Kaastosti op 09-01-2003 19:46 ]

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

Pagina: 1