Page 1 sur 1

vérifier si cookie existe

Posté : 31 janv. 2008, 17:59
par karenma
bonjour
je voudrais vérifier si une personne a déjà un cookie :
-si oui j'enregistre la valeur du cookie dans le champs cookie
-sinon je lui en met un
mais ça ne fonctionne pas
Comment faire? Merci pour vos réponses

ma première page
<form action="cookie1.php" method="post"  name="form1" id="form1">
       <p>
    <input name="pseudo" type="text" id="pseudo" /> pseudo
  </p>
 <p>
    <input type="submit" name="Submit" value="Envoyer" />
  </p>
</form>
Ma page cookie1.php
<?php 
$liendb = mysql_connect("serveur","user","pass");
mysql_select_db ("base");
if ( isset($_COOKIE['essai'])){
$sqll= "insert into table (champs) values('". $_COOKIE['essai']."')";
mysql_query ($sqll);
}
else{
setcookie("essai",$_POST['pseudo'],time()+3600);}
?>



Posté : 31 janv. 2008, 18:22
par Ryle
Et si tu nous disais ce qui ne fonctionne pas ?

tu as un message d'erreur ? le cookie n'est pas défini ? le fichier a été créé mais ne contient pas la bonne valeur ? c'est l'enregistrement en base qui ne fonctionne pas ? ou bien est ce un problème au niveau de l'évacuation de la baignoire dans la salle de bain ? :)


Ps : c'est pas bien d'appeller sa table "table", c'est un mot clé SQL réservé...

karenma

Posté : 31 janv. 2008, 19:08
par karenma
Bonjour
voici l'erreur:

si le cookie existe déja sa valeur n'est pas enregistrée dans le champs de la base de donnée!!

Merci d'avance pour votre aide!

Posté : 31 janv. 2008, 19:16
par Ryle
Bah alors question suivante : pourquoi sa valeur n'est elle pas enregistrée ?

Si le cookie existe, tu rentres dans la structure : if ( isset($_COOKIE['essai'])) , on peut faire confiance à php pour cela. Ensuite tu construit une chaine qui correspond à ta requête sql. La encore, php gère ça très bien, tu peux même l'afficher pour vérifier que la valeur du cookie y figure bien :)

Puis tu dis à php d'envoyer la chaine en question à ta base de données. Lui, bon et naif, suppose que si tu as bien fait ton travail, la chaine doit être une requête sql correcte et la transmet à ta base pour qu'elle s'en dépatouille... oui mais après ? qu'est-ce qu'elle en fait ta base de la requête ? est-ce que la requête était correcte et a bien été exécuté ? est-ce qu'il n'y a pas eu d'erreur de syntaxe, dans un nom de champ ou de table ?

Ta fonction mysql_query() retourne une valeur, peut être qu'en demandant à php de la tester, celui-ci pourrait te dire si la requête s'est exécutée sans erreur :) peut être qu'en interrogeant mysql_error(), tu pourrais même avoir un message d'erreur t'expliquant quoi corriger :)


Ps : c'est franchement pas bien d'appeller sa table "table", c'est veritablement un mot clé SQL réservé... ;)

cookie

Posté : 31 janv. 2008, 20:50
par karenma
bonjour
tu veux savoir la blague?? :wink:
en fait c'était un problème au niveau de l'évacuation de la baignoire dans la salle de bain
non en fait c que j'avais mis dans mon champs des chiffres alors que mes cookies sont des lettres

désolé pour la question

Posté : 01 févr. 2008, 10:27
par Ryle
Y a pas de soucis, tu y auras au moins gagné quelques conseils pour tes futurs debogages ;)

Un p'tit clic sur [Résolu] ? :)

Ps : nan mais sans blague, faut pas utiliser des mots clés sql reservés dans des noms de tables ou de champs, voir les bonnes pratiques sql dans la faq :)