Problème php - Méthode post actualisation
                                    
                        tranzebou                    
                                    -
                                     
scorpion16000 -
        scorpion16000 -
        Bonjour,
Je travaille sur la mise en place d'un panier pour un site d'e-commerce et j'ai un problème avec un formulaire (form = post) lorsque j'actualise la page du panier.
J'ai un premier script avec le formulaire permettant de saisir l'article à commander et la quantité dans une liste déroulante.
J'ai simplifié le script mais en gros ça donne ça:
<form method='post' action='panier.php' target='_top'>
<input name='code_prod' type='hidden' value='$ligne_produit->code_prod'>
<select name='quantite'>";
for ($k=1;$k<100;$k++)
{ echo "<option value=$k>$k</option>";}
echo "</select>
<input name='ajout' type='submit' value='Ajouter au panier'>
</form>
Ensuite, dans le script panier.php, on récupère le code du produit et les quantités. Si le produit existe déjà dans le panier, on ajoute les quantités postées aux quantités du produit déjà existantes sinon on ajoute le code du produit et les quantités.
Le problème vient du fait qu'en actualisant la page internet, cela ajoute systématiquement les quantités postées dans le dernier formulaire.
Par exemple, je commande 10 produits A
Je suis redirigé vers la page panier.php où je peux voir un récapitulatif avec "produit A : 10"
Si j'actualise la page, la méthode post ajoute à nouveau 10 produits, ce qui donne "produit A : 20" et ceci indéfiniment à chaque actualisation.
Voila un court passage du script panier.php
if (isset($_POST['code_prod']))
{
$existe=0;
$size=count($liste_code_produit);
for ($k=0;$k<$size;$k++)
{
$id = $liste_code_produit[$k];
if ($id==$_POST['code_prod'])
{
$qte=$liste_quantite[$k]+$_POST['quantite'];
$liste_quantite[$k] = $qte;
$k=$size;
$existe=1;
}
}
//si le produit n'est pas présent dans le panier
if ($existe==0)
{
$liste_code_produit[] = $_POST['code_prod'];
$liste_quantite[] = $_POST['quantite'];
}
//Actualisation des données dans la session
$_SESSION['liste_code_produit'] = $liste_code_produit;
$_SESSION['liste_quantite'] = $liste_quantite;
$quantite_totale = $quantite_totale + $_POST['quantite'];
$_SESSION['nombre_article'] = $quantite_totale;
}
Si quelqu'un sait comment éviter ce bug, merci beaucoup
                
            
                
    
    
    
        Je travaille sur la mise en place d'un panier pour un site d'e-commerce et j'ai un problème avec un formulaire (form = post) lorsque j'actualise la page du panier.
J'ai un premier script avec le formulaire permettant de saisir l'article à commander et la quantité dans une liste déroulante.
J'ai simplifié le script mais en gros ça donne ça:
<form method='post' action='panier.php' target='_top'>
<input name='code_prod' type='hidden' value='$ligne_produit->code_prod'>
<select name='quantite'>";
for ($k=1;$k<100;$k++)
{ echo "<option value=$k>$k</option>";}
echo "</select>
<input name='ajout' type='submit' value='Ajouter au panier'>
</form>
Ensuite, dans le script panier.php, on récupère le code du produit et les quantités. Si le produit existe déjà dans le panier, on ajoute les quantités postées aux quantités du produit déjà existantes sinon on ajoute le code du produit et les quantités.
Le problème vient du fait qu'en actualisant la page internet, cela ajoute systématiquement les quantités postées dans le dernier formulaire.
Par exemple, je commande 10 produits A
Je suis redirigé vers la page panier.php où je peux voir un récapitulatif avec "produit A : 10"
Si j'actualise la page, la méthode post ajoute à nouveau 10 produits, ce qui donne "produit A : 20" et ceci indéfiniment à chaque actualisation.
Voila un court passage du script panier.php
if (isset($_POST['code_prod']))
{
$existe=0;
$size=count($liste_code_produit);
for ($k=0;$k<$size;$k++)
{
$id = $liste_code_produit[$k];
if ($id==$_POST['code_prod'])
{
$qte=$liste_quantite[$k]+$_POST['quantite'];
$liste_quantite[$k] = $qte;
$k=$size;
$existe=1;
}
}
//si le produit n'est pas présent dans le panier
if ($existe==0)
{
$liste_code_produit[] = $_POST['code_prod'];
$liste_quantite[] = $_POST['quantite'];
}
//Actualisation des données dans la session
$_SESSION['liste_code_produit'] = $liste_code_produit;
$_SESSION['liste_quantite'] = $liste_quantite;
$quantite_totale = $quantite_totale + $_POST['quantite'];
$_SESSION['nombre_article'] = $quantite_totale;
}
Si quelqu'un sait comment éviter ce bug, merci beaucoup
        A voir également:         
- Problème php - Méthode post actualisation
- Easy php - Télécharger - Divers Web & Internet
- Brouillon post instagram - Guide
- Post it windows - Télécharger - Agendas & Calendriers
- Code post - Télécharger - Vie quotidienne
- Expert php pinterest - Télécharger - Langages
2 réponses
                        
                    lors de ton actualisation, tu réenvoie les infos de ton formulaire. passe par une page genre 
ta page de selection poduit => page de validation
page de validation => panier.php
Ta page de validation peu mettre a jour les variables de 2 produits passer à 5...
sachant qu'en fesant cela la page de validation n'est pas afficher si tu met que du code php qui est suivit d'un header
    
                ta page de selection poduit => page de validation
page de validation => panier.php
Ta page de validation peu mettre a jour les variables de 2 produits passer à 5...
sachant qu'en fesant cela la page de validation n'est pas afficher si tu met que du code php qui est suivit d'un header
