Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : panier : je ne m'en sors pas.... [ Divers / Débutant(e) ] (jereln)

mardi 22 janvier 2008 à 13:28:46 | panier : je ne m'en sors pas....

jereln

Bonjour,
je suis en trai de créer un panier avec utilisation des sessions.
J'ai une première page (index.php) qui correspond à mon catalogue. Chaque article a son propre bouton ajouter. Lorsque je clique sur celui ci, je passe sur la page panier (cart.php) qui liste mon panier. Le problème est que lorsque je clique sur le lien pour revenir sur le catalogue (afin de choisir un autre article), mon panier se vide est ne laisse apparaitre que le dernier article choisi.

Voici mes deux pages :
index.php

<?php
if (!$_SESSION['panier'])
       session_start($_SESSION['panier']);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Catalogue</title>
<link rel="stylesheet" href="fichier.css" type="text/css">
</head>

<body>
<table width="100%">
    <tr>
        <td class="Style1"><p></p><p>Ma boutique en ligne.</p></td>
    </tr>
    <tr>
        <td class="Style2">Panier ( )</td>
</table>
<fieldset>
    <legend align="left">
    <span id="cadre">Articles</span>
    </legend>
<table width="100%">
    <tr>
        <td>
        <table class="Style3">
            <tr>
                <td colspan="2" class="Style4">Canard de bain</td>
            </tr>
            <tr>
                <td><img src="images/canard.gif" title="Canard de bain" height="100" width="100"></td>
                <td><p>Un compagnon de jeu pour le bain.</p>
                    <p><b>2.99 Eur</b></p>
                    <p><form method="POST" action="cart.php">
                    <input type="hidden" name="code" value="ART001">
                    <input type="hidden" name="article" value="canard">
                    <input type="hidden" name="qte" value="1">
                    <input type="hidden" name="prix" value="2.99">
                    <input type="hidden" name="tva" value="19.6">
                    <input type="hidden" name="poids" value="0.300">
                    <input type="submit" name="ajouter" value="ajouter"></form></p>
                  </td>
            </tr>
        </table>
        </td>
        <td>
        <table class="Style3">
            <tr>
                <td colspan="2" class="Style4">Compas</td>
            </tr>
            <tr>
                <td><img src="images/compas.jpg" title="Compas" height="100" width="100"></td>
                <td><p>Pour ne pas perdre le nord.</p>
                    <p><b>9.95 Eur</b></p>
                    <p><form method="POST" action="cart.php">
                    <input type="hidden" name="code" value="ART002">
                    <input type="hidden" name="article" value="Compas">
                    <input type="hidden" name="qte" value="1">
                    <input type="hidden" name="prix" value="9.95">
                    <input type="hidden" name="tva" value="19.6">
                    <input type="hidden" name="poids" value="0.900">
                    <input type="submit" name="ajouter" value="ajouter"></form></p>
                </td>
            </tr>
        </table>
        </td>
        <td>
        <table class="Style3">
            <tr>   
                <td colspan="2" class="Style4">Aquarium et poisson rouge</td>
            </tr>
            <tr>
                <td><img src="images/aquarium.jpg" title="Aquarium" height="100" width="100"></td>
                <td><p>Pour passer le temps.</p>
                    <p><b>24.95 Eur</b></p>
                    <p><form method="POST" action="cart.php">
                    <input type="hidden" name="code" value="ART003">
                    <input type="hidden" name="article" value="Aquarium">
                    <input type="hidden" name="qte" value="1">
                    <input type="hidden" name="prix" value="24.95">
                    <input type="hidden" name="tva" value="19.6">
                    <input type="hidden" name="poids" value="3.500">
                    <input type="submit" name="aquarium" value="ajouter"></form></p>
                </td>
            </tr>
        </table>
        </td>
        <td>
        <table class="Style3">
            <tr>
                <td colspan="2" class="Style4">Boite à lettres</td>
            </tr>
            <tr>
                <td><img src="images/boite.gif" title="Boite à lettres" height="100" width="100"></td>
                <td><p>Vous avez du courrier.</p>
                    <p><b>12.99 Eur</b></p>
                    <p><form method="POST" action="cart.php">
                    <input type="hidden" name="code" value="ART004">
                    <input type="hidden" name="article" value="Boite à lettres">
                    <input type="hidden" name="qte" value="1">
                    <input type="hidden" name="prix" value="12.99">
                    <input type="hidden" name="tva" value="19.6">
                    <input type="hidden" name="poids" value="5.000">
                    <input type="submit" name="boite" value="ajouter"></form></p>
                </td>
            </tr>
        </table>
        </td>
    </tr>
</table>
</fieldset>

<p>(c) 2008 - Ma Boutique en ligne - 1.0.0</p>
</body>
</html>

et ma page cart.php :
<?
session_start();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Panier</title>
<link rel="stylesheet" href="fichier.css" type="text/css">

</head>

<body>
<table width="100%">
    <tr>
        <td class="Style1"><p></p><p>Ma boutique en ligne.</p></td>
    </tr>
    <tr>
        <td class="Style2"><a href="index.php<?php SID; ?>">Articles</a> | <a href="invoice.php">Paiement</a></td>
</table>

<?php
    $_SESSION['article'] = $_POST['article'];
    $_SESSION['code'] = $_POST['code'];
    $_SESSION['qte'] = $_POST['qte'];
    $_SESSION['prix'] = $_POST['prix'];
    $_SESSION['tva'] = $_POST['tva'];
    $_SESSION['poids'] = $_POST['poids'];
    $total = $_SESSION['prix'] * $_SESSION['qte'];
   

$nbArticles=count($_SESSION['article']);

  if ($nbArticles <= 0)
   echo "<tr><td>Votre panier est vide </ td></tr>";
  else
  {
?>

<fieldset>
    <legend align="left">
    <span id="cadre">Panier</span>
    </legend>

<table width="100%">
    <tr>
        <td class="Style11" width="16%">Code article</td>
        <td class="Style11" width="16%">Produit</td>
        <td class="Style11" width="16%">Quantité</td>
        <td class="Style11" width="16%">Prix</td>
        <td class="Style11" width="16%">Total</td>
        <td class="Style11" width="16%"></td>
    </tr>
<?php
   for ($i=0 ;$i < $nbArticles ; $i++)
   {
echo '<tr>';
echo '<td class="Style3" width="16%">';
echo $_SESSION['code'];
echo '</td>';
echo '<td class="Style31" width="16%">';
echo $_SESSION['article'];
echo '</td>';
echo '<td class="Style3" width="16%">';
echo '<img src="images/moins.gif">&nbsp;';
echo $_SESSION['qte'];
echo '&nbsp;<img src="images/plus.gif">';
echo '</td>';
echo '<td class="Style3" width="16%">';
echo $_SESSION['prix'];
echo '</td>';
echo '<td class="Style3" width="16%">';
echo $total;
echo '</td>';
echo '<td class="Style3" width="16%">';
echo ' ';
echo '</td>';
echo '</tr>';
    }
}
?>

</table>
<table width="100%">
    <tr>
        <td class="Style32" width="16%"></td>
        <td class="Style32" width="16%"></td>
        <td class="Style32" width="16%"></td>
        <td class="Style32" width="16%">TOTAL</td>
        <td class="Style32" width="16%">
            <?php
            $total2 = '12';
            echo $total2;
            ?>
        </td>
        <td class="Style32" width="16%"><a href="?vide=ok">Vider</a></td>
    </tr>
</table>   

</fieldset>
</body>
</html>


Merci de m'aider.

mardi 22 janvier 2008 à 21:47:57 | Re : panier : je ne m'en sors pas....

coockiesch

Salut!
Le session_start() doit être placé de manière inconditionnelle (sans aucun test) en haut de toutes les pages!! :-)

@++

R@f

La boîte à bouts de codes
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

mercredi 23 janvier 2008 à 12:03:55 | Re : panier : je ne m'en sors pas....

jereln

Merci de m'avoir répondu.
Pour le session_start();  OK
Mais mon problème est que lorsque je suis sur ma page panier (cart.php), j'ai un lien pour revenir sur ma page catalogue (index.php) pour choisir d'autres articles. Du coup, lorsque je choisi un nouvel article, celui ci "écrase" mon panier existant et il ne reste que le dernier.

Je ne sais pas si je suis claire?

je ne sais pas comment faire ?

mercredi 23 janvier 2008 à 16:12:04 | Re : panier : je ne m'en sors pas....

garfield90

euh, c'est tout a fait normal.

en gros, a chaque fois que tu ajoutes un produits dans ton panier ($_SESSION), tu l'écrases.
$_SESSION = $_POST donc tu auras toujours le dernier produit dans ton panier.

tu peux faire au pire :
$_SESSION['panier'][] = $_POST comme ca tu auras une ligne a chaque fois dans ton panier.

ne fais pas un copier coller du code, car y plein d'autres choses a faire.

regardes sur des sites/programme de e-commerce et regarde la maniere qu'il utilise pour gérer un panier.

"They are 10 sorts of persons whose understand binary and whose not"



Cette discussion est classé dans : session, post, echo, article, panier


Répondre à ce message

Sujets en rapport avec ce message

problème de panier et session [ par jereln ] je suis en train de créer un panier à l'aide de sessions. J'ai une première page catalogue (index.php) où sont listés mes articles. Chacun d'eux a un HELP PLEASE !!!! problème de panier... [ par frederic66 ] Bonjour,mon site a été redirigé sur un nouveau serveur qui utilise PHP4, MySQL - 5.0.51a-log. depuis, mon panier ne fonctionne plus correctement... on probleme syntaxe ecriteu BDD [ par ju0123456789 ] Bonjour, j'ai les produits du panier qui s'affichent sur ma page "modes_paiement.php" , le nombre d'articles et ainsi que le prix total, j'ai ma table POST et Get différent lors de l'envoi d'un formulaire (dans une boucle For) [ par Const4ntine ] Bonjour,Après avoir passé près de 4h dessus, et avoir fait des tests de tout les cotés, je demande de l'aide ;)J'ai un panier qui se charge par rappor Problème de panier avec $_SESSION [ par ragmo ] Bonjour à tous,Depuis ce matin j'ai un problème sur un ensemble de scripts de gesion de panier qui marchait [très] bien. Le message est : "Cannot use Variable de Session, Acces base de donnée [ par TuxOnline ] Bonjour à tous. Voila j'ai un petit souci pour ouvrir une connexion avec ma base de donnée.J'utilise donc une page d'authentification et je déclare en Passage d'objet par POST/GET [ par TOURSENE ] Salut à tous !Je travaille actuellement sur un projet en e-commerce. Je suis en plein dans le développement du site. Je rencontre une difficulté. Je s Vider panier [ par Miss1 ] Salut j'ai crée un panier et se que je voudrais savoir c'est comment faire pour vider le panier quand le client se déconnecte je connais cette methode Caddie e-commerce [ par guisx00 ] Salut je suis à la recherche de conseils svp, Voila je suis entrain de crée un petit panier e-commerce pour lister les articles et en choisir un sa c' session [ par pat65300 ] je m authenfie et sur cete page je verifie le mot de passe et le login.est ce sur cette page que doit créer ma session? si oui pouvez vous me dire si


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.