Problème reconnaissance cookie

hub2rep -  
Reivax962 Messages postés 3742 Statut Membre -
Bonjour à tous,

Le problème concerne la "mise en place" et la "reconnaissance" d'un cookie dans une page PHP (Apache 1.3 & PHP5 installés en local sous XP)

### Le cookie qui a été placé n'est manifestement pas "pris" en compte lors du "2nd" passage et les suivants car on passe tjs dans la séquence "Action 2" lorsque l'on sollicite la page (sous IE & Firefox - Win XP) ; et ce, quelque soit l'option de gestion des cookies (cf. plus bas)

### Les options "Gestion Cookies"
1)"IE" :
-Accepter tous les cookies
-Avancé:Ignorer la gestion automatique des cookies:= NON
-Avancé:Ignorer la gestion ... := OUI avec Cookies "Internes" et "Tiers" :=Accepter

2)"Firefox" :
-Autoriser à créer cookies:=OUI

Avez vous une idée de l'origine du problème et de la façon dont on peut le résoudre ?

Merci par avance pour vos infos.

NB1: la valeur du cookie "ncook" vaut effectivement "yes" (vérifié dans les options des navigateurs)

NB. Le CODE PHP

<?php

setcookie("ncook","yes");
?>

<html>
<head>
...
</head>

<body bgcolor="white">

<?php
// Test Existence & Contenu du Cookie "yes" ?
if (isset($ncook) && $ncook=="yes") {
// Action1 ...

}
else {
// Action2 ...

}
?>

</body>
</html>

1 réponse

Jean-François Pillou Messages postés 19541 Date d'inscription   Statut Webmaster Dernière intervention   63 279
 
Vérifie les erreurs générés par PHP dans le fichier de log php_error.

Il se peut que ce soit dû au fait que du contenu est envoyé avant l'appel de setcookie(). Un simple espace avant la balise <? peut suffire...

0
hub2rep
 
Merci pour l'info Jeff, mais je ne localise nulle part le log "php_error" sur mon disque.

Une option spéciale à indiquer lors de l'instal. (kit "CampusPress") ou dans un fichier "qui va bien" ?

NB. Par ailleurs, il n'y a aucun espace avant le <? ... >
0
Reivax962 Messages postés 3742 Statut Membre 1 011 > hub2rep
 
Bonjour,

Petite explication du problème :
- Pour placer un cookie, le serveur envoie une demande en ce sens dans les en-têtes HTTP, donc en tout début d'envoi de la page web (c'est pour ça qu'il ne faut rien avoir envoyé avant)
- La récupération des cookies se fait de façon similaire : quand ton navigateur envoie une requête HTTP vers un serveur web, il y joint les cookies qui concernent ce serveur.

Donc, si on prend ton script :

- le navigateur demande la page, et envoie les cookies (aucun)
- le serveur envoit les en-tête http, avec la création du cookie
- le serveur écrit le reste de la page pour l'envoyer : il tombe sur une demande de cookie QUE LE NAVIGATEUR NE LUI A PAS ENCORE ENVOYE.
- le serveur envoit le reste de la page

Moralité : un cookie ne peut pas être utilisé côté serveur dans la page-même où il est créé ! Le serveur ne "verra" le cookie qu'au prochain appel du navigateur, qui, là, le transmettra.

Voilà voilà :)

Xavier
0