IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] panier virtuel


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Tableaux] panier virtuel
    bonjour , je bloque sur un panier virtuel et la commande qui en résulte.
    Le panier fonctionne bien mais quand je lique sur le bouton commande , il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/c/a/...../includes/head.php:14) in /var/www/free.fr/c/a/...../panier.php on line 56
    j'ai des 4 includes pour la forme du site.Pour le session_start() , il est dans mon include head.php et pas dans les 2 pages comme ci dessus car sinon ça ne marche pas.Merci pour votre aide
    on passe du listing des produits avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ?page=panier&reference=<?php echo $row_Recordset1['id_produit']; ?>&prix=<?php echo $row_Recordset1['prix']; ?>&ajoutPanier=AJOUTER
    puis page panier.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    <?php
    session_start();
    //init des variables
    if (!isset($_SESSION['total'])) $_SESSION['total']=0;
    if(!isset($_GET['ajoutPanier'])) $ajoutPanier="";//init de ajoutPanier si non déclaré
    else  $ajoutPanier=$_GET['ajoutPanier']; 
    if(!isset($_GET['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré
    else $modifPanier=$_GET['modifPanier'];
    if(!isset($_GET['suppPanier'])) $suppPanier="";//init de suppPanier si non déclaré
    else $suppPanier=$_GET['suppPanier'];
    if(!isset($_GET['enregistreCommande'])) $enregistreCommande="";//init de enregistreCommande si non déclaré
    else $enregistreCommande=$_GET['enregistreCommande'];
    if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];//recup de la liste de la session
    ?>
    <?php 
     require_once('Connections/conn.php'); 
    		 mysql_select_db($database_conn, $conn);
    //----------------------------------------------------AJOUT PANIER
    if ($ajoutPanier=="AJOUTER")
    {
    	$reference=$_GET['reference'];
    	$nb=1; //par défaut la quantité est = 1
    	$prix=$_GET['prix'];
    	$liste[]=array($reference,$nb,$prix,$prix);
    	$_SESSION['liste']=$liste;
    	//ajoute un article à la liste
    }
    //----------------------------------------------------MODIF PANIER
    if ($modifPanier=="ACTUALISER")
    {
    	 for ($i=0;$i<count($liste);$i++)
    		{
    		$nbi='nb'.$i;
    		$liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste
    		$liste[$i][3]=$liste[$i][1]*$liste[$i][2];//prixArticle=nbre*prixUnitaire
    		}
    	$_SESSION['liste']=$liste;//mAj de la liste
    }
    //----------------------------------------------------SUPP PANIER
    if ($suppPanier=="SUPPRIMER")
    {
    	$article=$_GET['article'];
    	for ($i=0;$i<count($liste);$i++)
    		{
    		if($article==$liste[$i][0])
    			array_splice($liste,$i,1);
    		//suppression de l'article
    		}
    	$_SESSION['liste']=$liste;//mAj de la liste
    }
    //----------------------------------------------------COMMANDER
    if ($enregistreCommande=="COMMANDER")
    {
    	if(!isset($_GET['action'])) 
    	$_SESSION['action']="ENREGISTRER";//mémorise l'action 
    	header("Location:index.php?page=commande");
    }
     ?>
     
     
     
    <table width="100%" border="0" cellspacing="0">
      <tr> 
        <td><p align="center"><strong><font color="#FF0000" size="6" face="Arial, Helvetica, sans-serif">PANIER</font></strong></p>
     
    	 	<?php if(isset($liste)) { ?> <form action="" method="get" >
    		 <input type="hidden" name="page" value="panier">
      <table width="581" border="1" align="center" cellspacing="0" bordercolor="#FF0000">
        <tr> 
          <td><table width="577" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr bgcolor="#FF0000"> 
                <td width="200"> <div align="center"><font color="#FFFFFF"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Article</font></strong></font></div></td>
                <td width="200"> <div align="center"><font color="#FFFFFF"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Quantit&eacute;</font></strong></font></div></td>
                <td width="200"> <div align="center"><font color="#FFFFFF"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Prix</font></strong></font></div></td>
                <td width="36"> <div align="center"><font color="#FFFFFF"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Supp</font></strong></font></div></td>
              </tr>
            <?php 
     
    		   $total=0.00;
      for ($i=0;$i<count($liste);$i++)
    {
     
    	$rsPanier1=mysql_query("select * from produits where id_produit ='".$liste[$i][0]."'");
    	//echo $query_rsPanier;
    	    $rsPanier = mysql_fetch_array($rsPanier1);		  
     
    ?><tr> 
                <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $rsPanier['nom_produit'] ?></font></div></td>
                <td><div align="center"> 
                    <select name="nb<?php echo $i ?>" id="nb">
                      <option value="1"  <?php if($liste[$i][1]==1) echo "SELECTED"; ?>>1</option>
                      <option value="2" <?php if($liste[$i][1]==2) echo "SELECTED"; ?>>2</option>
                      <option value="3" <?php if($liste[$i][1]==3) echo "SELECTED"; ?>>3</option>
                    </select>
                  </div></td>
                <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $rsPanier['prix'] ?></font></div></td>
                <td><div align="center"><a href="?page=panier&suppPanier=SUPPRIMER&article=<?php echo $rsPanier['id_produit'] ?>"><img src="images/poubelle.gif" width="14" height="16" border="0"></a></div></td>
              </tr>
               <?php
     
    	$total+=$rsPanier['prix'] * $liste[$i][1];
    }
    $_SESSION['total']=$total;//mAj du total dans la session
     
    ?>
     
              <tr> 
                <td ><div align="center"></div></td>
                <td ><div align="center"></div></td>
                <td ><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Total 
                    : <?php echo $total ?> Euros</strong></font></div></td>
                <td ><div align="center"></div></td>
              </tr>
            </table></td>
        </tr>
      </table>
      <br>
      <p align="center"> 
        <input type="submit" name="modifPanier" value="ACTUALISER">
    	    <input name="enregistreCommande" type="Submit" value="COMMANDER">
      </p>
    </form> 
     <?php } else { ?>
          <p align="center"><strong><font size="4" face="Verdana, Arial, Helvetica, sans-serif">Votre panier est vide</font></strong></p>
     
    	 <?php }?>	  </td>
      </tr>
    </table>
    <p align="center"><A HREF="?page=produits" class="liensstitre">Revenir aux produits</A></p>
    page commande.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
    session_start();
     require_once('Connections/conn.php');  
    mysql_select_db($database_conn, $conn);
    $query_rslistes = "SELECT * FROM listes";
    $rslistes = mysql_query($query_rslistes, $conn) or die(mysql_error());
    $row_rslistes = mysql_fetch_assoc($rslistes);
    $totalRows_rslistes = mysql_num_rows($rslistes);
     
    //------------Initialisation des variables 
    if (!isset($_SESSION['action'])) $action="";
    else $action=$_SESSION['action'];
    if (!isset($_SESSION['liste'])) $liste[]=array("VIDE",1,0,0);//init de liste si VIDE
    else $liste=$_SESSION['liste'];//recup de la liste de la session
    if (!isset($_SESSION['total'])) $total=0;
    else $total=$_SESSION['total'];
     
    //------------------------------Enregistrement d'une nouvelle commande dans la table commandes
    	if ($action=="ENREGISTRER")
    	{
    	 require_once('Connections/conn.php'); 
    		 mysql_select_db($database_conn, $conn);
    		//recupération des articles et quantité et enregistrement dans la table listes
    	  for ($i=0;$i<count($liste);$i++)
    		{
    		$reference=$liste[$i][0];//récup de la réf de l'article dans le panier
    		$quantite=$liste[$i][1];//récup de la quantité de cet article dans le panier
    		$prixArticle=$liste[$i][3];//récup du prix total de ces articles (nb * prix unitaire) dans le panier
    		$insertListe = "INSERT INTO listes (total, produitID , quantite, prixarticle) VALUES ('$total', '$reference', '$quantite', '$prixArticle')";
    		$Result2 = mysql_query($insertListe, $conn) or die(mysql_error()); 
    		}
    	//destruction de la liste, du total et du drapeau action de la session 
    	unset($_SESSION['liste']);
    	unset($_SESSION['total']);
    	unset($_SESSION['action']);
     
    	}//fin du if ($action="ENREGISTRER")
    	?>
    <p align="center">commande</p>
    <table width="629" height="102" border="1" align="center">
      <tr>
        <td width="126"><div align="center">R&eacute;f&eacute;rence</div></td>
        <td width="106"><div align="center">Quantit&eacute;</div></td>
        <td width="159"><div align="center">Prix</div></td>
      </tr>
      <tr>
        <?php do { ?>
          <td><?php echo $row_rslistes['produitID']; ?></td>
          <td><?php echo $row_rslistes['quantite']; ?></td>
          <td><?php echo $row_rslistes['prixarticle']; ?></td>
      <?php } while ($row_rslistes = mysql_fetch_assoc($rslistes)); ?></tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td colspan="2"><div align="right">total &agrave; payer: </div></td>
        <td><?php echo $row_rslistes['total']; ?></td>
      </tr>
    </table>
     
     
     
    <?php
    mysql_free_result($rslistes);
    ?>

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Cannot modify header information - headers already sent
    le message d'erreur est explicite...
    tu as déjà écrit quelque chose dans ta page, et ton il ne peut plus modifier l'entête http (qui a déjà été envoyée)

    une solution, tu fais gaffe aux warnings...
    et/ou tu places ton header() avant
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    ligne 14-15

    supprimes ?><?php



    au fait, c'est quoi ton fichier head.php
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  4. #4
    Invité
    Invité(e)
    Par défaut panier
    merci de m'aider head php , c'est l'entete des pages , la partie haute du tableau.
    je ne vois pas ce qu'il faut modifier.

  5. #5
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    tu ne l'appelles pas avant d'inclure ce code au moins ?

    si non, ben c'est l'erreur...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  6. #6
    Invité
    Invité(e)
    Par défaut si
    le head est appelé avant tout le reste .Pourquoi c'est l'erreur pour la commande.J"ai un formulaire qui a un header du type index?page= contact
    et qui marche
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location:commande.php");
    et ça me fait aussi la meme erreur

  7. #7
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    tu as bien que c'était la partie haute du tableau ?

    donc ça sort du html avant tes header()
    donc y a un problème...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  8. #8
    Invité
    Invité(e)
    Par défaut panier
    commande.php c'est juste une page simple

  9. #9
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    commande.php c'est juste une page simple
    aucun rapport... l'erreur a lieu avant !!!

    tu ne dois pas afficher quelque chose avant d'appeler la fonction php header(), sinon tu te manges ce message...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  10. #10
    Invité
    Invité(e)
    Par défaut merci
    ok, j'ai juste fait un lien pour l'instant , ça m'affiche le tableau de la commande avec un seul enregistrement .donc je verrai demain,.
    cela ne fait que 2 mois que j'ai commencé le php , donc des erreurs , je vais en manger , c'est clair

  11. #11
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    c'est normal au début...

    Bonne continuation
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  12. #12
    Invité
    Invité(e)
    Par défaut panier
    A demain et merci reposez vous bien car demain ,je sens que les problemes vont etre nombreux

  13. #13
    Invité
    Invité(e)
    Par défaut panier
    c'est bon j'ai réussi à faire mon panier, ma commande et l'impression .Merci de m'avoir le header, j'ai mis juste le script dans le head.php
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de panier virtuel
    Par zourk dans le forum Langage
    Réponses: 1
    Dernier message: 29/08/2006, 13h41
  2. Panier virtuel comment en créer un ?
    Par sigap dans le forum Langage
    Réponses: 1
    Dernier message: 07/08/2006, 05h41
  3. Panier virtuel need Help!!
    Par louli_computing dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 12/06/2006, 13h53
  4. Script panier virtuel
    Par chodaboy34 dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 17h49
  5. panier virtuel
    Par jive dans le forum ASP
    Réponses: 5
    Dernier message: 23/08/2005, 18h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo