Cookie présent, mais non reconnu

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Cookie présent, mais non reconnu

par cerber » 16 juin 2005, 16:23

:? :( grrrrmbl encore une fois j'aurais du tourner sept fois ma langue dans ma bouche avant de dire une connerie ....

Content que ca marche domi :lol: :p

@+++

par Domi » 16 juin 2005, 16:00

Merci :wink: ca fonctionne avec :
setcookie("identifiant",$_POST['identifiant'],time()+$expire,"/"); 
A bientôt

par cerber » 16 juin 2005, 15:59

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
le path est le quatrieme parametre, tu l'utilise pas donc par défaut ca devrais etre '/' autrement dit tout le serveur
=> pas de probleme coté path ni expire (ta limite est assez grandze ;) )

par contre, as tu controlé ton $_POST['identifiant'] avant de le mettre dans le cookie ?? le probleme c'est que si $_POST['identifiant'] est vide ca va pas créer un cookie avec chaine vide comme valeur, ca va supprimer le cookie.

Sinon t'as essayé le livehttpheaders et le var_dump ?

par Domi » 16 juin 2005, 15:39

De plus, je comprends pas, car dans mon forum, j'utilise :
if (isset($_COOKIE['identifiant'])) 
{ 
echo " <td><b>".$_COOKIE['identifiant']."</b><input type=\"hidden\" name=\"identifiant\" value=\"".$_COOKIE['identifiant']."\"></td>"; 
} 
else 
{ 
echo " <td><input type=\"text\" size=\"18\" maxlength=\"30\" style='color: #000000; border: 1 solid #659294' name=\"identifiant\" value=\"".$_COOKIE['identifiant']."\"></td>"; 
} 
...en gros la même syntaxe, et là ca fonctionne ![/code]

par Domi » 16 juin 2005, 15:30

Bonjour Cerber :

J'utilise :
$expire = 365*24*3600; 
setcookie("identifiant",$_POST['identifiant'],time()+$expire); 
setcookie("email",$data['email'],time()+$expire); 
Ce code est utilisé pour mon forum (dans le rép /forum).

En revanche, le code qui plante est utilisé dans le rép /chat.

par cerber » 16 juin 2005, 15:26

quelle syntaxe utilise tu pour ajouter le cookie ? (on peut limiter la portée d'un cookie a un répertoire donné)
est tu sur le même serveur (si tu as des sous domaines, le cookie peut pas passer d'un domaine a l'autre)

je te conseille l'utilisation de l'extention LiveHttpHeaders pour firefox, tu verra si le cookie est bien envoyé du client vers le serveur

et coté serveur, de faire ca en début de page :
<pre><? var_dump($_COOKIE); ?></pre>

par fab » 16 juin 2005, 15:22

bah là tu demandes a php de t'afficher le input si le cookie est présent donc c'est normal que tu l'obtiennes, rajoutes un ! devant un isset pour l'inverse mais dans ce cas tu pourras pas te servir de la valeur du cookie dans l'input puisqu'il n'existe pas

Cookie présent, mais non reconnu

par Domi » 16 juin 2005, 15:16

Bonjour,

Voici une portion de mon code :
...
print("<BR><BR>".$param["text_form_user"]." : <INPUT type=text name=user maxlength=10><BR>");
...
J'ai effectué une modification de façon à afficher le login du visiteur au lieu du champ <input...> à condition qu'un cookie soit présent sur la machine :
...
if (isset($_COOKIE['identifiant']))
{
print ("<BR><BR>".$param["text_form_user"]."<b> : ".$_COOKIE['identifiant']."</b><input type=hidden name=user value=\"".$_COOKIE['identifiant']."\"><br>");
}
else
{
print("<BR><BR>".$param["text_form_user"]." : <INPUT type=text name=user maxlength=10><BR>");
}
...
Le cookie est pourtant bien présent, mais j'obtiens tjs le champ <input...> !

Pourquoi ?

Merci d'avance.