bonjour !
voila j'ai de grosses difficultés avec une variable de session
$_SESSION['prix_general'];
elle permet d'additionner le somme d'un caddie avec les frais de livraison.
mais voila a l'affichage tout ce passe bien grace a la fonction affiche_somme_total dans laquelle il n'y a qu'un echo $_SESSION['prix_general'];
et dans le print_r($_SESSION); de la page recap.php il recuperere bien 'prix_general'
ex :
Array ( [caddy] => Array ( [1] => 1 ) [produits] => 1 [prix_total] => 200000000 [prix_general] => 200000119 )
//recap.php <?php session_start(); $nom = $_POST['nom']; $prenom = $_POST['prenom']; $test = $_SESSION['prix_general']; // si le formulaire est rempli if($_SESSION['caddy']&&$nom&&$prenom&&$test) { // on peut inserer les données dans la base de donnée if( inserer_commande($_POST)!=false ) { $livraison = calculer_livraison($_SESSION['caddy'], $id_pays ); afficher_livraison($livraison); $_SESSION['prix_general']=$livraison+$_SESSION['prix_total']; affiche_somme_total(); //echo print_r($_SESSION); }} ?> |
mais si je veux inserer inserer la commande dans ma base de donnée, tout fonctionne sauf pour $test qui est egal a $_SESSION['prix_general'];, il iinsere comme valeur 0.00
<?php
function inserer_commande($commande_details) { extract($commande_details);
$query = "insert into commandes values ('', $client_id, ".$_SESSION['prix_general'].", '$test', '$nom', '$prenom')"; $result = mysql_query($query); if (!$result) return false;
$query = "select commande_id from commandes where client_id = $client_id and calcul > ".$_SESSION['prix_general']."-.001 and calcul < ".$_SESSION['prix_general']."+.001 and calcul_livraison = '$test' and nom = '$nom' and prenom = '$prenom' "; $result = mysql_query($query); if(mysql_numrows($result)>0) $commande_id = mysql_result($result, 0, 'commande_id'); else return false; ?> |
0.00 qu'on retrouve dans le caddie parce que si je ne declare pas $_SESSION['prix_general'] ='0.00'; alors ma fonction affiche_somme_total ne marche pas
j'ai un Undefined index: prix_general a la ligne $test = $_SESSION['prix_general']; de la page recap.php
et ne peut donc pas le recuperer exemple :
Array ( [caddy] => Array ( [1] => 1 ) [produits] => 1 [prix_total] => 200000000 )
//caddie.php <?php session_start(); @ $new = $_GET['new']; if($new) { if(!isset($_SESSION['caddy'])) { $_SESSION['caddy'] = array(); $_SESSION['produits'] = 0; $_SESSION['prix_total'] ='0.00'; $_SESSION['prix_general'] ='0.00'; } if(isset($_SESSION['caddy'][$new])) $_SESSION['caddy'][$new]++; else $_SESSION['caddy'][$new] = 1;) $_SESSION['prix_total'] = calculer_prix($_SESSION['caddy']); $_SESSION['produits'] = calculer_produits($_SESSION['caddy']); } if(isset($_POST['save'])) { foreach ($_SESSION['caddy'] as $ref => $quantite) { if($_POST['referenceno'.$ref]=='0') unset($_SESSION['caddy'][$ref]); else $_SESSION['caddy'][$ref] = $_POST['referenceno'.$ref]; } $_SESSION['prix_total'] = calculer_prix($_SESSION['caddy']); $_SESSION['produits'] = calculer_produits($_SESSION['caddy']); } if($_SESSION['caddy']&&array_count_values($_SESSION['caddy'])) afficher_caddy($_SESSION['caddy']); ?> |
voila j'espere avoir ete clair, je n'arrive pas du tout a trouver mon erreur ... merci de votre aide
ps : si vous avez besoin d'infos complementaires n'hesitez pas !
merci