gontran Posté 21 Mai 2006 Posté 21 Mai 2006 (modifié) Bonjour le hub, J'ai un petit souci d'affichage sur mon panier. Je m'explique : Lors de la premiere connexion à mon site Les producteurs locaux le panier devrait etre vide, hors il affiche un certains nombre d'articles (sur la droite de la page). En actualisant la page (touche F5), je constate que le panier est bien vide !!! Je cherche depuis un bon moment d'ou ca peux bien venir et je ne trouve pas. Est-ce que quelqu'un aurai une idée ?? Merci Modifié 21 Mai 2006 par gontran
robinsonvendredi Posté 22 Mai 2006 Posté 22 Mai 2006 Sans le code, c'est difficile d'avoir une idée. Donne plus de détails STP.
xpatval Posté 22 Mai 2006 Posté 22 Mai 2006 Effectivement, ton panier n'est pas vide, lors d'une première connexion au site. Comment le gères-tu ? xpatval
Toucouleur Posté 22 Mai 2006 Posté 22 Mai 2006 une idée comme ça : comme tu n'as pas utilisé d'id de sessions dans tes URLs, il y a fort à parier que tout est géré dans un cookie. Hors il semblerait quà la création de ton cookie avec ton Id de session, il te colle un panier contenant 5 articles. Mais une fois le cookie initialisé, le nombre d'articles dans le panier reste à vide. Essayes de vider ta table des sessions, ou vois ce que donnerai la non gestion des cookies sur ta boutique en utilisant la propagation des Ids de sessions dans les URLs, au moins pour voir ce que ça donne au niveau de l'ouverture de la boutique. Notes que tu as un léger problème d'affichage entre IE et FF
gontran Posté 22 Mai 2006 Auteur Posté 22 Mai 2006 (modifié) Bonjour le hub, Alors pour le probleme d'affichage avec IE je suis en train de bosser dessus... voila le code qui affiche mon panier : <? session_start();if (isset ($_SESSION['idok'])) { echo '<div id="droite">'; echo '<h1>Votre panier</h1>'; //extraction des donnees correspondant à l'id du client $query05='SELECT SUM(quantite) as nb, SUM(totalttc) as total FROM comm_active WHERE id_client="'.$session.'"'; $comma=mysql_query($query05); $ligne=mysql_fetch_array($comma); $somme=$ligne['total']; $nbrarticle=$ligne['nb']; if ($somme!="") { echo '<ul class="menudroite">'; echo '<li>Nombre d\'articles : <b>'.$nbrarticle.'</b></li>'; echo '<li>Total TTC : <b>'.$somme.'</b></li>'; echo '<li> </li>'; echo '</ul>'; } else { echo '<ul class="menudroite">'; echo '<li> </li>'; echo '<li>Votre panier est vide</li>'; echo '<li> </li>'; echo '</ul>'; } //Chargement du menu reservé aux membres echo '<h1>Espace client</h1>'; echo '<ul class="menudroite">'; echo '<li><a href="../membre/membre_home.php">Panneau de contrôle</a></li>'; echo '<li> </li>'; echo '<li><a href="../deconnexion.php">Déconnexion</a></li>'; echo '</ul>'; echo '</div>'; }else { echo '<div id="droite">'; echo '<h1>Votre panier</h1>'; //extraction des donnees correspondant à l'id du cookie $query06='SELECT SUM(quantite) as nb, SUM(totalttc) as total FROM comm_active WHERE id_cookie="'.$id_cookie.'"'; $commacookietemp=mysql_query($query06); $commacookie=mysql_fetch_array($commacookietemp); $sommecookie=$commacookie['total']; $nbrarticle=$commacookie['nb']; if ($sommecookie!="") { echo '<ul class="menudroite">'; echo '<li>Nombre d\'articles : <b>'.$nbrarticle.'</b></li>'; echo '<li>Total TTC : <b>'.$sommecookie.' </b></li>'; echo '<li> </li>'; echo '<li><a href="../login.php">Valider votre panier.</a></li>'; echo '</ul>'; } else { echo '<ul class="menudroite">'; echo '<li> </li>'; echo '<li>Votre panier est vide</li>'; echo '<li> </li>'; echo '</ul>'; } //chargement du menu public echo '<h1>Déjà client ?</h1>'; echo '<ul class="menudroite">'; echo '<li>Entrer les informations relatives à votre compte ci-dessous.<br> '; echo '<form action="../scripts/scr_auth.php" method="post" name="login" target="_self">'; echo 'Nom d\'utilisateur <br>'; echo '<input name="user" type="text" size="15" /><br>'; echo 'Mot de passe <br>'; echo '<input name="mdp" type="password" size="15" maxlength="8" />'; echo '<br /> '; echo '<input type="submit" name="Submit" value="Connexion" class="bouton"/>'; echo '</form></li>'; echo '</ul>'; echo '</div>'; }?> En effet je gere mes sessions par un cookie de session ($_SESSION['idok']) qui normalement devrait etre supprimer quand on ferme le navigateur. Aucun élément de session n'est stocké dans une base de données. En recopiant mon code je crois avoir trouver. Est-ce qu'il ne faudrait pas que j'initialise ma variable $session avant de faire mon SELECT ? Modifié 22 Mai 2006 par Portekoi
Toucouleur Posté 22 Mai 2006 Posté 22 Mai 2006 si c'est effectivement le pb, mais je te suggère d'effacer ton post, car là ça met en évidence des carences e, programmation, qui pour quelqu'un d'avisé, permettrait d'aller compléter des requêtes SQL via son cookie en 3 fois rien de temps, et c'est pas top top
gontran Posté 22 Mai 2006 Auteur Posté 22 Mai 2006 Est-ce que tu pourrais m'en dire un peu plus sur les carrence en programmation ? Pour la variable $session, en fait je ne penses pas que ca vienne de la puisque je l'initialise dans la page... Le code que je vous ai mis, et inséré via un "include"
robinsonvendredi Posté 22 Mai 2006 Posté 22 Mai 2006 Est-ce que tu pourrais m'en dire un peu plus sur les carrence en programmation ? <{POST_SNAPBACK}> Si j'ai compris, tu charges le panier avec un simple appel à cookie C'est un peu light. Le cookie ne doit permettre qu'un contrôle sur la base préalable à toute détection de profil et chargement de données. Ton panier "persistant" ne se charge qu'après vérification nom_d_usage + mot_passe + id_client
gontran Posté 22 Mai 2006 Auteur Posté 22 Mai 2006 Petite précision sur mon cookie de session. Ce cookie est initialiser quand l'utilisateur s'authentifie sur le site et il contient uniquement l'id correspondant au login et mot de passe que le client a entré je te met le source de mon script d'authentification if (isset($_POST['user']) && isset($_POST['mdp'])) { //----------------------------------------------------------------------------- //récupération des champs du formulaire //----------------------------------------------------------------------------- $login = htmlentities ($_POST['user']); $mdp = htmlentities ($_POST['mdp']); $mdp1 = md5 ($mdp); //----------------------------------------------------------------------------- //vérification de la concordance avec la bdd //----------------------------------------------------------------------------- $query00=mysql_query ("SELECT id, user, mdp, civilite, nom from client WHERE user='$login' AND mdp='$mdp1'"); $resultat = mysql_fetch_array ($query00); } if ($resultat['user']!="") { //----------------------------------------------------------------------------- //si ok, création d'une variable de session //----------------------------------------------------------------------------- $_SESSION['idok']=$resultat['id'];
gontran Posté 23 Mai 2006 Auteur Posté 23 Mai 2006 Bonjour le hub, J'ai un petit souci d'affichage sur mon panier. Je m'explique : Lors de la premiere connexion à mon site Les producteurs locaux le panier devrait etre vide, hors il affiche un certains nombre d'articles (sur la droite de la page). En actualisant la page (touche F5), je constate que le panier est bien vide !!! Je cherche depuis un bon moment d'ou ca peux bien venir et je ne trouve pas. Est-ce que quelqu'un aurai une idée ?? N'ayant pas eu de réponse plus précise je me permet de faire une relance. Merci par avance pour votre aide. Gontran
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant