gontran Posté 27 Avril 2006 Posté 27 Avril 2006 (modifié) Bonjour, Mon prblème est le suivant : J'ai créée une fonction pour l'affichage de mon caddie : function affichage_caddie_temp () { if (isset ($_SESSION['userok'])) { $session=$_SESSION['userok']; //extraction de l'id du client $query05='SELECT COUNT(totalttc) as nb, SUM(totalttc) as total FROM comm_active WHERE id_cookie='.$session.''; $comma=mysql_query($query05); $ligne=mysql_fetch_array($comma); $somme=$lignecookie['total']; $nbrarticle=$lignecookie['nb']; echo '<ul class="menudroite">'; echo '<li>Nombre d\'articles : '.$nbrarticle.'</li>'; echo '<li> </li>'; echo '<li>Total TTC : '.$somme.'</li>'; echo '<li> </li>'; echo '</ul>'; } else { $id_cookie=$_COOKIE['session']; //extraction de l'id du cookie $query06='SELECT COUNT(totalttc) as nb, SUM(totalttc) as total FROM comm_active WHERE id_cookie='.$id_cookie.''; $commacookietemp=mysql_query($query06); $commacookie=mysql_fetch_array($commacookietemp); $somme=$commacookie['total']; $nbrarticle=$commacookie['nb']; echo '<ul class="menudroite">'; echo '<li>Nombre d\'articles : <b>'.$nbrarticle.'</b></li>'; echo '<li> </li>'; echo '<li>Total TTC : <b>'.$somme.'</b></li>'; echo '<li> </li>'; echo '</ul>'; } } Quand je tape l'url de cette page directament dans mon navigateur (FireFox) la fonction tourne bien : cmonweb.net/page/menudroite.php Maintenant voila mùon probleme : J'appelle la page qui contient ma fonction a l'aide d'un include et cette page me renvoi le message d'erreur suivant : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/gontran/www/scripts/scr_fonctions.php on line 267 Voici la ligne 267 : $commacookie=mysql_fetch_array($commacookietemp); Je comprend bien le message d'erreur mais ce que je ne comprend c'est que ca fonctionne sans include cmonweb.net/ Quelqu'un pourrais m'aiguiller ? Merci Modifié 27 Avril 2006 par gontran
xpatval Posté 27 Avril 2006 Posté 27 Avril 2006 Pour moi, la première url renvoie la même erreur ! xpatval
gontran Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 Oui c'est normal il faut d'abord que tu passe par la home pour que ca te place le cookie www.cmonweb.com ensuite tu va ajouter un article par le biaie de la boutique présent sur le menu à gauche et ensuite ca fonctionne en accés direct
xpatval Posté 27 Avril 2006 Posté 27 Avril 2006 Heu, je suis embrumé, aujourd'hui, mais je me dis que l'erreur affichée dans la première url (voir mon précédent post) a la même cause que lors de l'entrée sur l'index de ton site. Ta valeur id_cookie n'est pas encore renseigné, avec ou sans include, lorsque tu ouvres ces pages (pas encore de cookie). Donc ta requête retourne une erreur. Comment les gères-tu ? xpatval
gontran Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 (modifié) Je fais un setcookie sur la home qui lui donne un id et une date d'expiration. le probleme c'est que sur mon poste ou il y a un cookie, ainsi que des commandes en attente dans la base de donnée avec comme identifiant le contenu de mon cookie. Ca fonctionne quand j'appelle la page en direct. Par contre il me retourne le message d'erreur quand j'affiche, par exemple la home de mon site, ou toute autre page d'ailleur. Modifié 27 Avril 2006 par gontran
xpatval Posté 27 Avril 2006 Posté 27 Avril 2006 Je fais un setcookie sur la home qui lui donne un id et une date d'expiration. le probleme c'est que sur mon poste ou il y a un cookie, ainsi que des commandes en attente dans la base de donnée avec comme identifiant le contenu de mon cookie. Pourtant il n'y a aucun enreg retourné par le SELECT. Donc soit le champ n'est pas renseigné, au moment de la requête, soit la requête n'est pas bonne. Change celle-ci, d'ailleurs: $query05="SELECT COUNT(totalttc) as nb, SUM(totalttc) as total FROM comm_active WHERE id_cookie='" .$session ."'";et$query06="SELECT COUNT(totalttc) as nb, SUM(totalttc) as total FROM comm_active WHERE id_cookie='" .$id_cookie ."'"; xpatval
gontran Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 (modifié) Voila ce que me ressort ma fonction quand je tape l'url suivante dans mon navigateur : cmonweb.net/page/menudroite.php Votre panier * Nombre d'articles : 3 * * Total TTC : 38.4 * Donc ma fonction fonctionne. Aprés quand je l'appelle via un include, je n'arrive plus a l'afficher ce résultat... Modifié 27 Avril 2006 par gontran
Portekoi Posté 27 Avril 2006 Posté 27 Avril 2006 Attention, pour qu'un cookie fonctionne, il faut réactualiser la page....
xpatval Posté 27 Avril 2006 Posté 27 Avril 2006 (modifié) Donc ma fonction fonctionne. Aprés quand je l'appelle via un include, je n'arrive plus a l'afficher ce résultat... <{POST_SNAPBACK}> Donc, elle ne fonctionne pas... L'erreur retournée par le SELECT indique que tu n'a aucun enregistrement correspondant à ta demande. Pourquoi ? parcequ'aucun champ ayant la valeur précisée n'est trouvé par la requête. Modifié 27 Avril 2006 par xpatval
gontran Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 (modifié) Je vien d'aller tester mes pages dans un cybercafé le résultat : va ne fonctionne pas quand la page est appellée via un include ca fonctionne quand tu l'appelle directement depuis la barre d'adresse du navigateur de plus j'ai tester ma requete avec phpmyadmin et elle fonctionne, donc ce n'est pas un probleme de raquete mais bien un probleme de passage de variable dans un include Modifié 27 Avril 2006 par gontran
gontran Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 (modifié) je cré un cookie avec la fonction setcookie je lui donne un nom : session je lui donne une valeur : chaine de chiffre aléatoire et une date d'expiration : 15 jours j'ai vérifier sur mon poste ca crée bien le cookie et quand je ferme mon navigateur et que je le redemarre sur ma home il ne me le change pas puisqu'il est encore valide j'ai vérifier sur le poste du cybercafé et ca a fait la meme chose. je te met le code qui genere mon cookie function creation_cookie () { $number = "0123456789"; $chaine = str_shuffle($number); $timestamp_expire = time() + 15*24*3600; $path=www.cmonweb.net; $domain=cmonweb.net; if(isset($_COOKIE['session'] )){ $cookie=$_COOKIE['session'];} else { setcookie ('session', $chaine, $timestamp_expire);} return $id_cookie; } le gros probleme est que je n'arrive pas a recuperer la valeur de ce cookie dans le include, par contre si je charge la page en direct y'a pas de soucie.... Modifié 27 Avril 2006 par gontran
gontran Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 (modifié) Pour info : J'ai mis en place une lecture du cookie Connectez vous sur cmonweb.net Sur la partie centrale du site vous avez la valeur de votre cookie Sur la partie qui contient le menu droit, donc a droite de la partie centrale, j'ai placer le meme code que celui présent sur la partie centrale, mais vous ne voyez pas la valeur du cookie. Code pour afficher la valeur du cookie : <? echo ' cookie : '.$id_cookie.''; ?> Dons je pense que le probleme vient de là, je n'arrive pas a recuperer la valeur de mon cookie dans la partie droite qui est inserer par un "include". Modifié 27 Avril 2006 par gontran
xpatval Posté 27 Avril 2006 Posté 27 Avril 2006 (modifié) Et ton setcookie est bien exécuté avant toute entête, dans tes pages html ? Modifié 27 Avril 2006 par xpatval
gontran Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 oui sinon il y aurai un message d'erreur tu a essayer d'aller sur ma home ?
gontran Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 (modifié) Bon j'ai trouvé pourquoi ca ne marchais pas. Ca venait de mes lignes de code. Je faisais mes include de cette facon : include ('http://xxxx.xxx/xxxx/xxxx.xxx'); Mais il fallais que je les fasse de cette facon : include ('../xxx.xxx'); Merci a tous pour votrte aide Modifié 27 Avril 2006 par gontran
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant