[php] cookie wil echt *niet* geset worden

Pagina: 1
Acties:

  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 06-09 21:36

Tjeerd

Be Original, Be Yourself.

Topicstarter
Ik heb al verschillende topics doorzocht hier, maar wat ik daaruit wijs ben geworden heeft niet geholpen om mijn probleem op te kunnen lossen.

Het probleem is dat ik werkelijk waar niet een cookie geset krijg d.m.v. de setcookie-functie in PHP.

Ik verstuur de cookies *voor* de headers, maar echt niet worden geset he. Heb de tijd ingesteld, zodat ie even blijft staan, ik heb in m'n Cookies-directory gekeken ofdat ie aangemaakt wordt, niet dus.

De code is als volgt:
code:
1
setcookie("LooseThreads_uid",$user[user_id],time()+31536000,"/loosethreads/","www.onsdomein.nl",0);

Help..., het vreemde is dat ons forum - de login van het forum dus - wel cookies kan plaatsen, dus wat ik eigenlijk verkeerd doe, vraag ik me nu af. Mijn frontpage-PHP-scripts staan in de root-www-directory en het forum in de sub-dir /loosethreads/.

Het gaat hier dus om een frontpage-login.

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Hoe test je of ze wel of niet geset worden?

dmv de pop-up/warning van je browser?

  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 06-09 21:36

Tjeerd

Be Original, Be Yourself.

Topicstarter
Ik test ze door te kijken of het cookie geset is.

Nadat het cookie geset is in de code, doe ik gelijk een redirect naar de frontpage weer (alle code speelt zich af in een PHP-script, index.php), heb een eigen functie daarvoor redirect("$PHP_SELF").

Dan gaat het script kijken of de variable gezet is:
code:
1
2
3
4
if (IsSet($LooseThreads_uid))
{
 echo "Cookie is gezet $LooseThreads_uid";
}

Maar dan is de waarde nul komma nada. Het is exact hetzelfde stukje code als wat in het forum wordt gebruikt en daar wordt het cookie wel gezet.

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
PHP < 4.2 ?

$_COOKIE['LooseThreads_uid'] werkt wel?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Als je frontpage niet in de dir /loosethreads/ staat, maar je dit wel set in de cookie kun je d'r op de frontpage natuurlijk niet bij...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 06-09 21:36

Tjeerd

Be Original, Be Yourself.

Topicstarter
Op maandag 27 mei 2002 15:36 schreef Glimi het volgende:
PHP < 4.2 ?

$_COOKIE['LooseThreads_uid'] werkt wel?
Heb versie 4.1.1 draaien op onze server en dat $_COOKIE he'k ook al geprobeerd, maakt niets uit :(.

Wordt er wat para van, al twee dagen aan 't pielen om dat werkend te krijgen, maar hij wil maar niet worden geset.
Als je frontpage niet in de dir /loosethreads/ staat, maar je dit wel set in de cookie kun je d'r op de frontpage natuurlijk niet bij...
Mijn frontpage staat in de root en idd het forum in /loosethreads, daar zat ik dus ook al aan te denken of dat uitmaakt. Dan zou ik dus daar de frontpage van moeten maken als dir? Maarrre, dat is root, wat wordt dat dan voor dir? Gewoon een slash?
code:
1
setcookie("LooseThreads_uid",$user[user_id],time()+31536000,"/","www.onsdomein.nl",0);

De frontpagelogin moet gelijk ook kunnen worden gebruikt voor het forum (zodat men niet daarne nog 1s op het forum hoeft in te loggen).

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Dan moet je de setcookie van het forum ook aanpassen. Een cookie is beschikbaar voor de dir die je opgeeft bij het cookie en alle subdirs.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 06-09 21:36

Tjeerd

Be Original, Be Yourself.

Topicstarter
Hij wordt waarempel steeds eigenaardiger:

Heb nu ff een subdir test aangemaakt en daar twee scripts gemaakt, te weten test.php en test2.php

Test.php zet een cookie door middel van de volgende code
code:
1
2
3
4
<?php
 setcookie("koekje","1",time()+600,"/test/","www.onsdomein.org");
echo "Cookie gezet";
?>

en test2.php
code:
1
2
3
4
5
6
<?php

echo $_COOKIE('koekje');
echo $koekje;

?>

Eerst open ik test.php in de browser, en vervolgens test2.php indezelfde browser.
En ook hier zet ie geen koekje neer, argh, kan wel 1s iets fout doen, maar hier zie ik werkelijk niet in wat ik nou eigenlijk fout doe.

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Staat je datum van de PC wel goed.
Anders verloopt je cookie direct weer

  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 06-09 21:36

Tjeerd

Be Original, Be Yourself.

Topicstarter
Op maandag 27 mei 2002 16:14 schreef Goodielover het volgende:
Staat je datum van de PC wel goed.
Anders verloopt je cookie direct weer
Datum van de server staat idd een uur te vroeg, ff sjekken.

Update: potverdorie, dat is idd een van de problemen :), mooi dus cookies zetten werkt iig wel, nu nog de frontpage.
Nog even een vraag dus over die directory die je moet meegeven aan setcookie(...), ik heb mijn scripts in de root-www-dir neergezet, moet ik dan gewoon een slash gebruiken als dir? Of slashslash?

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:50
Niet helemaal on-topic, maar voor het testen van cookies kun je beter in eerste instantie kijken of je webbrowser de cookies daarwerkelijk ontvangt. In de meeste browsers kun je er voor kiezen om cookies handmatig te accepteren; dan kun je dus zien of je ze in ieder geval binnen krijgt. Ook analyse van het netwerkverkeer kan helpen.

Als je alleen kijkt of je een eenmaal ingestelde cookie ook terugkijkt, kun je eigenlijk alleen vaststellen of alles tegelijk goed of fout gaat. Als dan een enkele stap in de procedure faalt, heb je geen informatie om de fout mee op te sporen.

  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 06-09 21:36

Tjeerd

Be Original, Be Yourself.

Topicstarter
En ja hoor, eindelijk heb ik het probleem kunnen oplossen, er zit blijkbaar nog iets niet pluis met ons domein, ik weet niet waar PHP dat precies uithaalt en hoe die te werk gaat daarmee, maar de oplossing is iig als volgt:
code:
1
setcookie("LooseThreads_uid",$user[user_id],time()+31536000,"/");

Dus "www.onsdomein.org" weglaten en de 0 weglaten en het werkt.

Fijn :).

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.

Pagina: 1