> Tous les forums > Forum des Webmasters
 pb variable session
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
aguiv
  Posté le 14/03/2005 @ 21:44 
Aller en bas de la page 
Petite astucienne
bonjour à tous, j'ai le pb suivant : dans un caddie virtuel j'ai une $total qui correspond à la somme des articles commandés. Le caddie fonctionne, mais la $total que je récupère dans une table de la base est toujours égal à 0. Un extrait du code correspondant, si qq à une idée. merci [code] //init des variables if (!isset($HTTP_SESSION_VARS['total'])) $total=0; if(!isset($HTTP_GET_VARS['ajoutPanier'])) $ajoutPanier="";//init de nb si non déclaré else $ajoutPanier=$HTTP_GET_VARS['ajoutPanier']; if(!isset($HTTP_GET_VARS['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré else $modifPanier=$HTTP_GET_VARS['modifPanier']; if(!isset($HTTP_GET_VARS['suppPanier'])) $suppPanier="";//init de suppPanier si non déclaré else $suppPanier=$HTTP_GET_VARS['suppPanier']; if(!isset($HTTP_GET_VARS['enregistreCommande'])) $enregistreCommande="";//init de enregistreCommande si non déclaré else $enregistreCommande=$HTTP_GET_VARS['enregistreCommande']; if ((!isset($HTTP_SESSION_VARS['liste']))&&($ajoutPanier=="")) $liste[]=array("VIDE",1,0,0);//init de liste si VIDE if (isset($HTTP_SESSION_VARS['liste'])) $liste=$HTTP_SESSION_VARS['liste'];//recup de la liste de la session if (!isset($total)) session_register('total'); [/code] ... [code] <?php $total=0.00; // initialisation du total de la commande à 0 for ($i=0;$i<count($liste);$i++) {//début du bloc for $query_rsPanier="select * from articles_rdt where reference ='".$liste[$i][1]."'"; $rsPanier=mysql_query($query_rsPanier, $ConnectionRDT) or die(mysql_error()); $row_rsPanier=mysql_fetch_assoc($rsPanier); /*définition et exécution de la requête SQL afin de récupérer les informations de l'article stocké dans la base(référence...)*/ ?> <tr bgcolor="#FFFF99"> <td width="99" height="20" bgcolor="#FFFF99" class="style17"><div align="left"><?php echo $row_rsPanier['code_rdt']; ?> </div></td> <td width="204" height="20" bgcolor="#FFFF99" class="style17"><?php echo $row_rsPanier['reference'] ?></td> <td width="96" height="20" bgcolor="#FFFF99" class="style11"><select name="nb<?php echo $i ?>" class="style11" id="nb"> <option value="1" <?php if($liste[$i][2]==1) echo "SELECTED"; ?>>1</option> </select> <?php if ($row_rsPanier['quantite']=="les 100g") { echo "x 100g"; }?></td> <td colspan="2" height="20" bgcolor="#FFFF99" class="style17"><div align="center"> <div align="left"><?php echo $row_rsPanier['PrixVenteTTC'] ?> € <?php echo $row_rsPanier['quantite'] ?></div></td> <td bgcolor="#FFFF99" height="20" class="style7"><div align="center" class="style11"><span class="none"><? echo $liste[$i][4] ?> </span>€ TTC</div></td> <td height="20" colspan="2" bgcolor="#FFFF99" class="style17"><div align="center"> <div align="center"><a href="panier.php?article=<?php echo $i ?>&suppPanier=1">enlever du panier</a></div></td> </tr> <tr class="style20"> <td colspan="4" > </td> <td colspan="2" > </td> <td colspan="2" > </td> </tr> <tr> <td colspan="4"><span class="style22"> <?php $total+=$row_rsPanier['PrixVenteTTC'] * $liste[$i][2]; }// fin du bloc for ?> <strong>Total de votre commande <?php echo $total ?> € TTC </strong></span></td> [/code]
Publicité
aguiv
 Posté le 15/03/2005 à 22:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne
Personne n'a d'idée ? J'ai l'impression que lorsque j'envoie la $total dans la base, il prend toujours $total=0 comme c'est défini au début : [code]<?php $total=0.00; // initialisation du total de la commande à 0[/code] et pas [code]$total+=$row_rsPanier['PrixVenteTTC'] * $liste[$i][2][/code] si qq y comprends qq chose, merci de m'aider.
jmarc
 Posté le 16/03/2005 à 01:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Salut je te conseillerais de lire cette page concernant les variables globales à off http://www.phpdebutant.org/article113.php
Rolive
 Posté le 16/03/2005 à 01:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Bonjour, Depuis PHP4 il faut utiliser $_SESSION pour l'enregistrement de données. Ex pour enregistrer le contenu de la variable $total dans la session : $_SESSION['total'] = "$total"; Pour récupérer l'enregistrement de session echo $_SESSION['total'];
jmarc
 Posté le 16/03/2005 à 07:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
web-mao a écrit :
Bonjour, Depuis PHP4 il faut utiliser $_SESSION pour l'enregistrement de données. Ex pour enregistrer le contenu de la variable $total dans la session : $_SESSION['total'] = "$total"; Pour récupérer l'enregistrement de session echo $_SESSION['total'];
depuis 4.3 pour être exact et tu as oublié de lui parler de session_start, destroy, et registered...
Rolive
 Posté le 16/03/2005 à 08:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Exact ... [smile] En haut de page avant le code html et surtout avant de commencer à utiliser les sessions il faut mettre : session_start(); pour fermer la session (à inclure en fin de page : session_write_close(); pour detruire les variables session session_unset(); Et enfin pour détruire la session session_destroy();
aguiv
 Posté le 16/03/2005 à 10:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne
bonjour à tous, après recherche, mon pb vient de la définition de $total comme variable de session dans la page panier. Qd on clique sur "commander" on est redirigé après login sur la page commande et en début de page commande j'ai : [code] //init des variables if (!isset($HTTP_GET_VARS['commandeID'])) $HTTP_GET_VARS['commandeID']=0; if (!isset($HTTP_SESSION_VARS['statut'])) $statut="NON IDENTIFIE"; else $statut=$HTTP_SESSION_VARS['statut']; if (!isset($HTTP_SESSION_VARS['action'])) $action=""; else $action=$HTTP_SESSION_VARS['action']; if (!isset($HTTP_SESSION_VARS['liste'])) $liste[]=array("VIDE",1,0,0);//init de liste si VIDE else $liste=$HTTP_SESSION_VARS['liste'];//recup de la liste de la session if (!isset($HTTP_SESSION_VARS['total'])) $total=0; else $total=$HTTP_SESSION_VARS['total'];[/code] et si je change $total=0 par $total=1, mon total de commande devient tjrs égal à 1 donc en fait, si j'ai bien compris, dans la page panier $total n'est pas pris en compte comme variable de session puisqu'il ne la reconnait pas dans la page commande. Dans la page panier j'ai [code]<?php session_start(); //init des variables if (!isset($HTTP_SESSION_VARS['total'])) $HTTP_SESSION_VARS['total']=0; if(!isset($HTTP_GET_VARS['ajoutPanier'])) $ajoutPanier="";//init de nb si non déclaré else $ajoutPanier=$HTTP_GET_VARS['ajoutPanier']; if(!isset($HTTP_GET_VARS['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré else $modifPanier=$HTTP_GET_VARS['modifPanier']; if(!isset($HTTP_GET_VARS['suppPanier'])) $suppPanier="";//init de suppPanier si non déclaré else $suppPanier=$HTTP_GET_VARS['suppPanier']; if(!isset($HTTP_GET_VARS['enregistreCommande'])) $enregistreCommande="";//init de enregistreCommande si non déclaré else $enregistreCommande=$HTTP_GET_VARS['enregistreCommande']; if ((!isset($HTTP_SESSION_VARS['liste']))&&($ajoutPanier=="")) $liste[]=array("VIDE",1,0,0);//init de liste si VIDE if (isset($HTTP_SESSION_VARS['liste'])) $liste=$HTTP_SESSION_VARS['liste'];//recup de la liste de la session if (!isset($total)) session_register("total"); ?>[/code] En fait j'ai deux lignes de définition pour $total, je ne comprends pas trop pourquoi. Est-ce vous voyez l'erreur à corriger ? En tout cas merci de vos réponses.
aguiv
 Posté le 16/03/2005 à 21:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne
Bonsoir à tous, j'ai retravaillé le code, dans la page panier j'ai amaintenant [code]session_start(); //init des variables $_SESSION['total'] = "$total";[/code] et dans la pge commande j'ai [code]if (!isset($_SESSION["total"])) $total=0; else $total=$_SESSION["total"];[/code] mais ca ne marche toujours pas,$total = 0 dans la page commande. Si vous avez d'autres idées, merci beaucoup
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
21,99 €Clé USB Sandisk Ultra Go 128 Go à double connectique USB 3.1 Type A et C à 21,99 €
Valable jusqu'au 21 Mai

Cdiscount fait une promotion sur la clé USB Sandisk Ultra Go 128 Go à double connectique USB 3.1 Type A et C qui passe à 21,99 €. Cette clé USB  dispose d'un connecteur USB Type C et d'un connecteur classique de type A. Grâce à elle, transférez en toute simplicité et rapidement (jusqu'à 150 Mo/s) vos fichiers entre vos smartphones, tablettes et ordinateurs.

On la trouve ailleurs à plus de 32 €.


> Voir l'offre
35,99 €Clé USB Sandisk Ultra 256 Go à double connectique USB 3.1 Type A et C à 35,99 €
Valable jusqu'au 21 Mai

Amazon fait une vente flash sur la clé USB Sandisk Ultra 256 Go à double connectique USB 3.1 Type A et C qui passe à 35,99 € livrée gratuitement. Cette clé USB  dispose d'un connecteur réversible USB Type C et d'un connecteur classique de type A. Grâce à elle, transférez en toute simplicité et rapidement (jusqu'à 150 Mo/s) vos fichiers entre vos smartphones, tablettes et ordinateurs. On la trouve ailleurs à plus de 45 €.


> Voir l'offre
74,99 €SSD PNY CS900 960 Go à 74,99 €
Valable jusqu'au 21 Mai

Cdiscount fait une promotion sur le SSD PNY CS900 960 Go qui passe à 74,99 € alors qu'on le trouve ailleurs à partir de 100 €. Ce SSD offre des vitesses d'écriture de 515 Mo/s et de lecture à 550 Mo/s. Il est garanti 3 ans. La livraison est gratuite.


> Voir l'offre

Sujets relatifs
Problème avec variable session
variable de session et connexion base chez free
passer valeur JS à variable de session
variable de session
pb variable session
variable de session de type tableau
variable et array
variable d'un select MAJ en "directe"
variable
Passage de variable et affichage
Plus de sujets relatifs à pb variable session
 > Tous les forums > Forum Forum des Webmasters