Aller au contenu

Un cookie Php resistant


Sujets conseillés

Posté

Bonjour

En première étape, je crée un cookie avec :


setCookie($cookieAuthName,$_SESSION['familleS'],time()+60*60*24);

Ensuite, pour un test de mon développement, je supprime manuellement le cookie dans Documents and settings ; vérification faite, même après un reboot, la ligne a bien disparu de lExplorateur.

Plus tard, je teste la présence du cookie, qui devrait avoir disparu, avec :


if (isset($cookieAuthName))

Mon problème : ce test est positif, le cookie semble toujours exister.

En gros, je cherche un moyen de supprimer ce cookie qui le fasse disparaître au test isset() ou bien je cherche un autre test que isset() qui corresponde à labsence du cookie.

Comme je ne connais pas très bien les cookies, je dois faire un truc de travers.

Par avance merci de votre aide.

Francois

Posté

Euh... isset($_COOKIE[$cookieAuthName]), plutôt, non?

Et quel est l'intérêt de stocker une variable de session dans un cookie?

Jacques.

Posté

Le cookie est créé par une première page, vérification visuelle faite dans Docs & Sets ; il est ensuite testé dans une deuxième page, maintenant avec isset($_COOKIE[$cookieAuthName]).

Ces vérifications de son existence et de son contenu sont effectuées avec le même code dans les deux pages :


echo "xxxAuth nom du Cookie: ".$cookieAuthName."<br>";
echo "xxxAuth contenu du Cookie: ".$_COOKIE[$cookieAuthName]."<br>";

Vérification à la création :

creeAuth nom du Cookie: martinotP

creeAuth contenu du Cookie: Martinot

Vérification au test :

verifAuth nom du Cookie: martinotP

verifAuth contenu du Cookie:

Donc le cookie, existant, ne passe pas dans la deuxième page le test isset($_COOKIE[$cookieAuthName]).

Pour le cache, je ferme toujours IE v8 entre deux tests ; ça suffit à éviter des effets de cache ?

Sinon, Oui, jaurais pu mettre une autre variable quune variable de session.

Donc mon sujet de cookie reste entier.

Merci de votre aide.

Francois

Mon test:


if (!isset($_COOKIE[$cookieAuthName]))
{
// echo "verifAuth cookieAuthName n'existe pas<br>";
header( "Status: 301 Moved Permanently", false, 301);
header( "Location: /pasAcces.php"); // envoi à la page d'erreur
exit();
}

Posté

Pas tout suivi... Si tu supprimes le cookie, il n'existe plus (comme on le voit bien dans ton test) et isset($_COOKIE[$cookieAuthName]) est faux.

Jacques.

Posté

Oui, mais:

- mon cookie créé par la première page existe, ma vérification echo montre son contenu

- cette page en appelle une autre qui commence par le test !isset()

Je devrais donc le trouver et ne pas passer sur le code situé après le test !isset().

Mais j'y passe et c'est là où est mon problème ; à signaler que le ccokie existe tjs dans Docs & Sets.

Francois

Posté

La deuxième page est sur le même site (même domaine)? Dans le même répertoire (tu n'as pas précisé de chemin, donc par défaut c'est restreint au même répertoire)?

Jacques.

Posté

La deuxième page est sur le même site (même domaine)? Dans le même répertoire (tu n'as pas précisé de chemin, donc par défaut c'est restreint au même répertoire)?

Jacques.

Posté

Jacques, merci de ta réponse.

Oui, toutes les pages sont sur le même site mais Non, les pages suivantes ne sont pas dans le même dossier que la première page.

Et, à la création du cookie, je n'ai pas précisé le chemin d'accès de validité du cookie.

Tu as probablement identifié là mon problème; je vais corriger ça.

Merci de ton aide.

Francois

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...