dépose de cookie

Petit nouveau ! | 4 Messages

19 févr. 2007, 12:45

Bonjoura tous ,
voila j ai un soucie quand j essais de deposer un cookie ( pour la premiere depose )

mon code :

Code : Tout sélectionner

if ($tache == 'ajout_panier') { // on depose un cookie if (!isset($_COOKIE["toto"])) { // --- calcul d'un identifiant unique $bt_sid = date("U") . getMyPid(); // --- positionnement du cookie setcookie ("toto", $bt_sid, time()+86400, '/'); } // on recupere les infos du produit a ajouter au panier $reqSelectProduit = "SELECT id,uv,refp, prix, photo, description FROM produit where refp='".$ref."'"; $resulatSelectProduit = ExecutionRequete($reqSelectProduit, $connexion); $resultSelectProduit = LigneSuivanteTab($resulatSelectProduit); $id= $resultSelectProduit['id']; $refp = stripslashes($resultSelectProduit['refp']); $prix = $resultSelectProduit['prix']; $uv = $resultSelectProduit['uv']; $photo = $resultSelectProduit['photo']; $description = stripslashes($resultSelectProduit['description']); $cookie= $_COOKIE["toto"]; //on enregistre le produit dans la base panier $reqInsertProduit = "insert into panier (sid,refp,description,uv,prix_unitaire,quantite,poids)"; $reqInsertProduit .= "values ($cookie,'$refp','$description','$uv',$prix,'1','poids')"; $resulatInsertProduit = ExecutionRequete($reqInsertProduit, $connexion); $Affichage.= '<script language="Javascript">'; $Affichage .= "alert('cet article a été ajouté au panier');"; $Affichage .= '</script>'; }
mon erreur est que sid est vide. j obtiens ajout_panier par hidden de form

par contre quand je fais un refresh de ma page je n ai plus l erreur :(
merci beaucoup de votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 févr. 2007, 14:53

Erreurs communes :

Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez la présence du cookie au prochain chargement de la page avant que le cookie n'expire.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

19 févr. 2007, 15:56

Erreurs communes :

Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez la présence du cookie au prochain chargement de la page avant que le cookie n'expire.
merci de votre reponse, mais comment puis je faire pour ne plus avoir le message d erreur Au premier chargement ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 févr. 2007, 16:32

Le plus simple à mon avis est d'utiliser une autre variable dans ton script, que tu initialiseras en fonction de la présence ou non du cookie :)
$cookie = '';
if (!isset($_COOKIE["toto"])) { 
      // --- calcul d'un identifiant unique 
      $cookie = date("U") . getMyPid(); 
       // --- positionnement du cookie 
      setcookie ("toto", $cookie, time()+86400, '/'); 
} 
else // si le cookie existe, on récupère sa valeur
  $cookie = $_COOKIE["toto"];
Ainsi, que la valeur vienne d'être ajoutée ou qu'elle ait été récupérée depuis le cookie, tu peux utiliser la variable $cookie sans soucis :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...