[php5]Cookies worden niet opgeslagen

Pagina: 1
Acties:

  • bibawa
  • Registratie: Augustus 2005
  • Laatst online: 13-04-2008
Ik gebruik een project volgende code om een cookie aan te maken:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
.
....
if($cookie == 1){
          
          setcookie("koekje","",time()+3600);
        }    
        if(isset($_COOKIE["koekje"])){
          echo("yes");
        }else{
          echo("no");
        }
}
.....


de $cookie wordt meegegeven aan de constructor van de klasse en dat gaat goed, (er wordt dus ook in dit deel van de code gekomen!)

het setcookie gedeelte verloopt op zich ook goed omdat ik de waarde true terugkrijg dus dat is een teken dat het goed is verlopen.

echter de test of de cookie bestaat mislukt steeds.

Normaal als ik de code zo zou uitvoeren zou ik de error moeten krijgen van "Headers already sent" omdat ik deze niet krijg denk ik persoonllijk zelf dat het aan mijn server configuratie ligt, omdat het hier een net nieuw geinstalleerde apache / php 5 server is..

Alleen weet ik niet waar ik iets zou moeten aanpassen in php.ini / httpd.conf om de cookies te laten werken..

Heeft iemand een idee waar de oorzaak van dit probleem zich kan verschuilen?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 14:25

Janoz

Moderator Devschuur®

!litemod

het setcookie gedeelte verloopt op zich ook goed omdat ik de waarde true terugkrijg dus dat is een teken dat het goed is verlopen.
Hier ga je alvast in de fout. Dat deze true terug geeft zegt helemaal niks. Je kunt uberhaupt pas bij een volgend request zien of het zetten van je cookie geslaagd is. Het enige dat php kan weten is of je cookie daadwerkelijk aan je headers toegevoegd is. Het uilezen van de $_COOKIE array is daarom ook complete onzin. Als je nog steeds in het zelfde request zit als waarin je de cookie hebt gezet is hij nog helemaal niet beschikbaar in de Array. De COOKIE array wordt namelijk gevuld door wat de client meestuurt met het request. De eerstvolgende mogenlijkheid hierop is het volgende request dus.

Daarnaast wordt je cookie waarschijnlijk niet geaccepteerd omdat hij verplichte velden mist. Als er bij je cookie geen dir en domain meegestuurd wordt worden ze in 99% van de gevallen door de browser genegeerd.

Daarnaast zie ik in je code meer sluit haken dan open haken.

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