Forum Clubic

[php] Problème avec les cookies - Impossible de créer des cookies

Bonjour tous le monde.

Alors voila mon ennui. J’ai créer un formulaire de connexion avec un boutton à cocher pour que le formulair se souvienne du client avec ce code pour le boutton:

 <tr>
<td><br/><hr/><label for="cookie">Veux-tu que ton mot de passe et ton pseudo soit retenu pour ta prochaine connexion ?</label></td>
<td><hr/><input type="checkbox" name="cookie" id="cookie"/></td>
</tr>

Seulement, lors de la récupération de se formulaire, j’ai placé un code pour qu’un cookie soit crée. Celui-ci, contenant le pseudo et le mot de passe du client. Le code correspondant étant ce qui suit :

<?php
session_start();
if(isset($_POST['cookie'])){
$duree_cookie = time() + 31*24*3600;
$pseudo = $_POST['pseudo'];
$mot_de_passe = $_POST['mot_de_passe_1'];
setcookie('pseudo', '$pseudo', $duree_cookie);
setcookie('mot_de_passe', '$mot_de_passe', $duree_cookie);
}

Le problème est, vous l’aurez compris, que le cookie ne se crée pas !!!!
Et je ne sais pas pourquoi. Donc aidez moi s’il vous plait. Merci !!!

C’est infernal cette faute de base :

setcookie('pseudo', '$pseudo', $duree_cookie);
setcookie('mot_de_passe', '$mot_de_passe', $duree_cookie);

D’une ce sont des singles quote, donc aucune évaluation du contenu.
De deux, quand tu as une variable pas la peine de la transformer en chaîne de caractère pour t’en servir, sert en directement :

setcookie('pseudo', $pseudo, $duree_cookie);
setcookie('mot_de_passe', $mot_de_passe, $duree_cookie);

Ensuite, essaye avec Firefox, en demandant confirmation avec d’autoriser un cookie. Tu sauras si ton code passe ou pas, ou si c’est Firefox (ou IE) qui bloque le cookie.

Merci Sans-Nom pour ta réponse pleine de finesse et de courtoisie.

Même en transformant les variables en chaîne de caractère ou sans le faire, avec des singles quotes ou des doubles, ça ne marche pas. J’ai vu plein de topics et de tuto, mais ça veut pas fonctionner.

Une autre idée ?

Oui : lis mon message en entier, notamment la partie sur le gestionnaire de cookie.

Pour être honnête, sauf si t’envoie ton formulaire via la méthode GET (par défaut), ça doit fonctionner, avec ou sans problème de variable.

(regarde voir si tu as bien <form … method="post" … >)

Sans-Nom je suis désolé, car je l’ai pas préscisé mais les cookies ne se crées pas. Je l’ai vérifié des dizaines de fois.

Ensuite, j’envoie bien sur le formulaire par la méthode post. Je ne vois pas non plus ce qui ne fonctionne pas…

Ca me blase … :frowning:

C’est un probleme de navigateur _Daimyo. Tu n’autorises peut etre pas assez la création de cookie. Si tu as un parefeu style zonealarm, vérifie qu’il ne soit pas trop strict sur les cookies aussi.

Le code corrigé par sans nom marche très bien.
Cependant au lieu de créer deux cookies, tu peux faire ainsi :




$incookie = array();
$incookie['pseudo'] = $_POST['pseudo'];
$incookie['mot_de_passe'] = $_POST['mot_de_passe_1'];
      setcookie("Daimyo_cookie",urlencode(serialize($incookie)),time()+3600*24*31);


Et pour déchiffrer ton cookie :



$reversearray = unserialize(urldecode($_COOKIE["Daimyo_cookie"]));
//$reversearray["pseudo"] contient le pseudo etc...


ps : N’entre pas les mot de passe en clair sur les cookie …
Met donc :


$incookie['mot_de_passe'] = md5($_POST['mot_de_passe_1']);

Hum …

Ouai je vais voire ça autrement car, tous mes programmes autorisent les cookies, et tous ceux de ce topic disent que le code est bon.

Cependant merci Theblackeagle pour le code, je n’avais pas pensez à utiliser les arrays pour n’avoir qu’un seul cookie. Je vais creuser l’idée.

:super: