problème de mise en session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème de mise en session

par coxine » 08 avr. 2006, 13:28

oui apparement ce n'est pas là que ça cloche...
C'est dans la condition
//----------------------------------------------------CHEQUE CADEAU
 if ($ajoutcodechkdo=="Ajouter") 
    { 
        $code = $_GET['code_chkdo'];
        $_SESSION['code_chkdo'] = $code; 
    } 
que j'ai oublié certainement d'actualiser la liste et/ou le total...
Parce que sur ma page panier.php, le total (que je fasse un echo $total; ou echo $_SESSION['total']; affiche bien 0€
Sur la page de récap de la commande, où l'on a initialisé et transporté la variable $_SESSION[total'], celle-ci repasse (par ex.) à 100€.

Apparement oui je rentre bien dans le if du code, car plus bas, je reprends la variable $code, pour aller dans la base chequecadeau le montant qui correspond au code que l'on rentre (ici ça affiche 100€ d'où le résultat de 0€ :wink: )...si je fais un echo du montant à soustraire, il fonctionne bien...
Je vais essayer les deux autres solutions de vérif que tu me proposes et je te dis ! :)

../.. quelques tests après :
J'ai fait plusieurs tests d'affichage du total, avant et après la déduction du cheque cadeau avant/apres des mises en session.
Les valeurs sont correctes.
Donc je perds le second $_SESSION[total'] en me dirigeant sur la page commande.php (par un header()).
Sur la page commande j'ai bien l'init des variables de session...avec session_start() en tout premier lieu..
:-k

par Ryle » 08 avr. 2006, 12:34

Hello ! :)

Hum.. effectivement, y a pas l'air d'avoir grand chose qui cloche, il faut donc essayer de voir à partir d'où ca ne va plus :

Est ce que tu rentres bien dans le if du $code ? (en plaçant juste un echo "oui je suis bien rentré dans le if du code, t'en as d'autres des idées géniales ?!"; )
La requête te ramène-t-elle bien quelque chose et est-ce que cela correpond bien à ce que tu attends ? (si la réduc est de zéro par exemple, ça va pas le faire ;))
Si tu affiches ton $total avant de le mettre dans $_SESSION as tu bien le résultat attendu ?
Même question si tu fais un print_r($_SESSION) à la fin de ton code et là où tu affiches le résultat ?

problème de mise en session

par coxine » 08 avr. 2006, 12:19

Voilà, dans un précédent message j'ai créé une modification de total de panier, grâce à l'ajout d'un code de chèque cadeau.
Cela fonctionne, mais il me semble que le nouveau total de la commande (déduit le montant du chèque cadeau) ne soit pas mis en session....car la page commande récapitule bien le panier, MAIS remet l'ancien montant.
Qui pourrait m'aider à voir où ça cloche ??
<?php
		   	$total=0.00;
		   	for ($i=0;$i<count($liste);$i++)
			{
			$query_Panier="SELECT * FROM sessions, cours  where sessions.ID_session = '".$liste[$i][0]."' AND sessions.ID_cours=cours.ID_cours";
			//echo $query_Panier;
			$Panier = mysql_query($query_Panier, $connexion) or die(mysql_error());
    		$row_Panier = mysql_fetch_assoc($Panier);		
			?>

// plus bas

<?php
			 // calcul du total avec ou sans code promo 
		    $total += $row_Panier['prix'] * $liste[$i][1]; }
    		if (isset($code)) 
    		{ 
        	$query_Chkdo = "SELECT prix_cadeau FROM chequecadeau  WHERE code = '".$code."'"; 
        	$Chkdo       = mysql_query($query_Chkdo, $connexion) or die(mysql_error()); 
        	$row_Chkdo   = mysql_fetch_assoc($Chkdo); 
        	$total      -=  $row_Chkdo['prix_cadeau']; 
    		 
			}$_SESSION['total'] = $total; 
			//mémorise le total dans la session ?>
J'avoue que je ne vois pas