Aller au contenu

Sujets conseillés

Posté (modifié)

bonjour !

bon voila, jcommence à installer un systeme de membre sur mon site web par session et cookies ("se souvenir de moi"), et tout fonctionne très bien, sauf que lors de la deconnection, il y a impossibilité de supprimer les cookies, ce qui fait que le membre reste connecté à vie (enfin pour la durée de vie initiale donnée au cookie, cad 1an, à moins bien sur qu'il l'efface manuellement de son navigateur).

Je sais que les cookies ne sont pas supprimés parce qu'au bout de 5 jours, meme après une "deconnection", il y a tjrs la même date d'expiration :)

voici le lien vers le repertoire d'essai de mon site (j'ai pas encore touché au design...):

=> http://awasagaga.free.fr/apercu/

voici le code de ma page deconnection.php (awasagaga.free.fr/apercu/script/membre/deconnection.php):

<?php
//Démarrage de la session.
session_start();

//Ensuite on vérifie que la variable $_SESSION['logged'] existe (et vaut bien true.)
if (isset($_SESSION['logged'])) //&& $_SESSION['logged'] == true
{
session_destroy();

//Destruction des cookies.
setcookie("pseudo");
setcookie("mot_passe");

//Redirection.
header("location: ../../droite.php");

}


else
{
//On est pas connecté, alors on redirige le visiteur sur la page d'accueil.
header("location: ../../droite.php");
}


?>

j'ai aussi essayé avec

 setcookie("pseudo", "", time() - 3600, '/', ".awasagaga.free.fr");
setcookie("mot_passe", "", time() - 3600, '/', ".awasagaga.free.fr");

ou encore de désespoir:

<script type="text/javascript" language="JavaScript">
<!--

function EcrireCookie(nom, valeur)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=nom+"="+escape(valeur)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}

function EffaceCookie(nom)
{
date=new Date;
date.setFullYear(date.getFullYear()-1);
EcrireCookie(nom,null,date);
}




EffaceCookie("pseudo");
EffaceCookie("mot_passe");

//-->
</script>

vous auriez pas une explication rationnelle svp?

Modifié par Dudu
Posté

Bonjour,

Tu as très certainement un problème dans le 'chemin' de ton cookie.

Vérifie bien les ss-domaine/domaine/répertoire de ton cookie, il doit y avoir un conflit là dedans.

Posté

Personellement je casse mes cookies en faisant :

setcookie('pseudo', '', time(), '/');

Essai ça, si ça marche mieux

Posté

Bonjour,

L'erreur la plus fréquente avec les Cookies est l'envoi préalable de header... Une fois, je me suis cassé la tête à cause juste d'un espace au début d'un fichier de configuration, qui empêchait donc que les cookies soient supprimés. Si tu inclues la page deconnection (deconnexion en Français ;)) dans une page où il y avait déjà eu des données envoyées à l'ordinateur du visiteur, le cookie n'est pas implémenté. Si tu es sur EasyPHP, tu peux configurer PHP pour qu'il affiche la totalité des Warning/Error et vérifier que ce n'est pas ça.

Tu peux aussi utiliser une extension Firefox de gestion des cookies pour voir quels ont été les cookies créés par ton site, leurs valeurs, donc voir si ton programme en crée d'autres à la mauvaise adresse (comme signalé auparavant) ou ne crée vraiment rien.

Posté (modifié)

bon j'ai fini par trouver, anonymous avait raison (même compris avant de voir son post)

j'y avait pas pensé parce qu'il y avait un include qui boulversait toute l'arborescence (si on fait pas attention)

merci beaucoup à tous ! :D

Rg

Modifié par rgwarrior

Veuillez vous connecter pour commenter

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



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