Creation panier produit [Résolu] - PHP

Creation panier produit Automatisation création fiche produit » Forum - Programmation Création panier » Forum - Internet / Réseaux sociaux [TPE] création et produits besoin d'aide :s » Forum - Études / Formation High-Tech Création de QRCodes pour des produits (Résolu) » Forum - Excel Création de QRCodes pour des produits (voir fichier) (Résolu) » Forum - VB / VBA

bonjour

j'essaie de créer pour la première fois un panier produit, pour le début ca va, mais l'étape du fichier modifierpanier je n'ai pas bien compris, en fait j'ai mon fichier panier.php j'ai une page blanche alors que si je le nomme panier.html je vois bien sur le localhost il est fonctionnel avec quelques erreurs et idem pour le fichier modifierpanier.php j'ai une page blanche et quand je met en header('Location:panier.html') il me renvoit bien au fichier panier.html donc je n'ai pas compris comment faire. puisque je dois nommer mon fichier panier.php. je vous montre mes codes :

fichier panier.php

<?php session_start ();  <!DOCTYPE html PUBLIC> <html> <head>  <meta charset=utf-8"/> <title>exo panier</title> </head>   <link href="panierproduit.css" rel="stylesheet" type="text/css">  <body>  <header> <h1>Panier produits</h1> </header> <section id = "panier">  <form id = "produit" action ="modifierPanier.php?" method="get"  name="produit"> <label for="disque">Disque dur 500Go</label> <input type="text" id="disque" name="disque" prix="100€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="netbook">Netbook 10 pouces</label> <input type="text" id="netbook" name="netbook" prix="170€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="tablette">tablette 10.1 pouces</label> <input type="text" id="tablette" name="tablette" prix="210€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="telephone">Samsung Galaxy C7</label> <input type="text" id="telephone" name="telephone" prix="307€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  </section> <section id = "RecapCommande"> <fieldset> <legend> Recapitulatif de votre commande : </legend> <div id="recap"> <?php echo'<br />'; if(isset($_SESSION['DisqueDur'])) { echo$_SESSION['DisqueDur'].' DisqueDur'.' ( '.$_SESSION['DisqueDur']*100.' € )<br />'; } if(isset($_SESSION['tablette'])) { Echo $_SESSION['Netbook'].' Netbook'.' ( '.$_SESSION['Netbook']*170.' € )<br />'; } if(isset($_SESSION['tablette'])) { echo$_SESSION['Tablette'].' Tablette'.' ( '.$_SESSION['Tablette']*210.' € )<br />'; } if(isset($_SESSION['Telephone'])) {   echo$_SESSION['Telephone'].' Telephone'.' ( '.$_SESSION['Telephone']*307.' € )<br />'; } echo'<br />'; ?> </div> <div id="validerPanier"> Total article :  <?php Echo $_SESSION['nombreArticlePanier']; ?> <br/><br/> Total à payer :  <?php echo($_SESSION['DD500go']*100)+($_SESSION['Netbook']*170)+($_SESSION['Tablette']*210)+( $_SESSION['Telephone']*307); echo' €<br /><br />'; ?> <a href="modifierPanier.php?valider=1"> <button>Valider</button></a>  <a href="modifierPanier.php?vider=1"> <button>Vider</button></a> </div> </fieldset> </section>  <section id="confirmation"> <fieldset> <legend>Validation de votre commande :</legend> <?php echo $_SESSION['CdeValide'];?> </fieldset> </section>      <?php if (!isset($_SESSION['nombreArticlePanier']) || empty($_SESSION['nombreArticlePanier'])) {   $_SESSION['nombreArticlePanier'] = 1; }     else {   $_SESSION['nombreArticlePanier']++; } header('Location:panier.php');  ?>  </form> </body> </html>   ?>


fichier modifier.php :

<?php session_start(); /* On ajoute un produit dans le panier */ if (!isset($_SESSION['nombreArticlesPanier']) || empty($_SESSION['nombreArticlesPanier'])){ $_SESSION['nombreArticlesPanier']=1; } else { $_SESSION['nombreArticlesPanier']++; } header('Location:panier.php'); ?> 


merci de votre aide

Forum

Creation panier produit Automatisation création fiche produit » Forum - Programmation Création panier » Forum - Internet / Réseaux sociaux [TPE] création et produits besoin d'aide :s » Forum - Études / Formation High-Tech Création de QRCodes pour des produits (Résolu) » Forum - Excel Création de QRCodes pour des produits (voir fichier) (Résolu) » Forum - VB / VBA

Web: www.shapebootstrap.net

14 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Première erreur... tu n'as pas fermé la balise PHP avant de mettre ton html

 <?php session_start ();  <!DOCTYPE html PUBLIC> <html> 

A remplacer par :
 <?php session_start ();  //au passage... pour avoir les erreurs PHP, pense à mettre ceci en haut de tes fichiers php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);   //FERMETURE PHP avant de mettre le HTML ... ?> <!DOCTYPE html PUBLIC> <html> 


Un peu de lecture au passage :
http://www.commentcamarche.com/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Reply
réponses:
  • jordane45

    NB : EMPTY ... vérifie déjà que la variable est ISSET .. donc pas besoin de mettre les deux

     if (!isset($_SESSION['nombreArticlesPanier']) || empty($_SESSION['nombreArticlesPanier'])){ $_SESSION['nombreArticlesPanier']=1; } else { $_SESSION['nombreArticlesPanier']++; } 

    devient :
     if ( empty($_SESSION['nombreArticlesPanier'])){ $_SESSION['nombreArticlesPanier']=1; } else { $_SESSION['nombreArticlesPanier']++; } 


    Et puis... pourquoi passer par une variable que tu incrémentes pour connaitre le nombre de produits dans ton panier ???
    Si ton panier est un ARRAY ( ce qu'il doit être... toute autre solution étant absurde....)... pour savoir combien de produits s'y trouvent.. un simple count suffit

    par exemple :
     $nbArticles = count($_SESSION['articles']); 

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

merci beaucoup jordane45 pour ton aide et t conseils.

j'ai le meSsage d'erreur suivant :L’encodage de caractères du document HTML n’a pas été déclaré. Le document sera affiché avec des caractères incorrects pour certaines configurations de navigateur si le document contient des caractères en dehors de la plage US-ASCII. L’encodage de caractères de la page doit être déclaré dans le document ou dans le protocole de transfert.

donc je comprend pas je remet mon code :

<?php session_start();  error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);  ?> <!DOCTYPE html PUBLIC> <html> <head>  <meta charset="utf-8"> <title>exo panier</title> </head>   <link href="panierproduit.css" rel="stylesheet" type="text/css">  <body>  <header> <h1>Panier produits</h1> </header> <section id = "panier">  <form id = "produit" action ="modifierPanier.php?" method="get"  name="produit"> <label for="disque">Disque dur 500Go</label> <input type="text" id="disque" name="disque" prix="100€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="netbook">Netbook 10 pouces</label> <input type="text" id="netbook" name="netbook" prix="170€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="tablette">tablette 10.1 pouces</label> <input type="text" id="tablette" name="tablette" prix="210€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="telephone">Samsung Galaxy C7</label> <input type="text" id="telephone" name="telephone" prix="307€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  </section> <section id = "RecapCommande"> <fieldset> <legend> Recapitulatif de votre commande : </legend> <div id="recap"> <?php echo'<br />'; if(isset($_SESSION['DisqueDur'])) { echo$_SESSION['DisqueDur'].' DisqueDur'.' ( '.$_SESSION['DisqueDur']*100.' € )<br />'; } if(isset($_SESSION['Netbook'])) { Echo $_SESSION['Netbook'].' Netbook'.' ( '.$_SESSION['Netbook']*170.' € )<br />'; } if(isset($_SESSION['Tablette'])) { echo$_SESSION['Tablette'].' Tablette'.' ( '.$_SESSION['Tablette']*210.' € )<br />'; } if(isset($_SESSION['Telephone'])) {   echo$_SESSION['Telephone'].' Telephone'.' ( '.$_SESSION['Telephone']*307.' € )<br />'; } echo'<br />'; ?>  </div> <div id="validerPanier"> Total article :  <?php Echo $_SESSION['nombreArticlePanier']; ?> <br/><br/> Total à payer :  <?php echo($_SESSION['DD500go']*100)+($_SESSION['Netbook']*170)+($_SESSION['Tablette']*210)+( $_SESSION['Telephone']*307); echo' €<br /><br />'; ?> <a href="modifierPanier.php?valider=1"> <button>Valider</button></a>  <a href="modifierPanier.php?vider=1"> <button>Vider</button></a> </div> </fieldset> </section>  <section id="confirmation"> <fieldset> <legend>Validation de votre commande :</legend> <?php echo $_SESSION['CdeValide'];?> </fieldset> </section>      <?php if (!isset($_SESSION['nombreArticlePanier']) || empty($_SESSION['nombreArticlePanier'])) {   $_SESSION['nombreArticlePanier'] = 1; }     else {   $_SESSION['nombreArticlePanier']++; } header('Location:panier.php');  ?>  </form> </body> </html> 


merci de ton aide. je continue a chercher.

Reply
réponses:
  • jordane45

    Déjà.. tu n'as pas tenu compte de mes remarques...
    et visiblement tu n'as pas été lire le lien que je t'ai donné !

    Donc commence par ça... ensuite on verra !!!

  • moon136

    merci jordane45 eh oui dsl j'avais mal parcouru le lien que tu m'a donné, du coup c bcp plus claire et je peux maintenant enfin afficher mes 2 fichiers php, j'ai créer une fonction debug dans un fichier à part : debug.php .
    je vois maintenant que dans mon script php tout n'est pas fonctionnel j'ai beaucoup d'erreur, quand j'ajoute au panier je valide et je vide je suis renvoyé vers une page blanche

  • jordane45

    Donc maintenant que tu as lu et compris le lien que je t'ai donné, tu as donc pu effectuer des corrections dans ton code.
    Si malgré ça tu as toujours des problèmes... il faut que tu nous montres ton "nouveau" code que l'on regarde ce qui cloche.

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

J'ai fait des corrections et maintenant il reste des erreurs de syntaxe sur mes lignes écho :

<?php session_start();  error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);  ?> <!DOCTYPE html PUBLIC> <html> <head>  <meta charset="utf-8"> <title>exo panier</title> </head>   <link href="panierproduit.css" rel="stylesheet" type="text/css">  <body>  <header> <h1>Panier produits</h1> </header> <section id = "panier">  <form id = "produit" action ="modifierPanier.php?" method="get"  name="produit"> <label for="disque">Disque dur 500Go</label> <input type="text" id="disque" name="disque" prix="100€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="netbook">Netbook 10 pouces</label> <input type="text" id="netbook" name="netbook" prix="170€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="tablette">Tablette 10.1 pouces</label> <input type="text" id="tablette" name="tablette" prix="210€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  <label for="telephone">Samsung Galaxy S7</label> <input type="text" id="telephone" name="telephone" prix="307€" size = '10' /> <input type="button" value="Ajouter au panier" /><br />  </section> <section id = "RecapCommande"> <fieldset> <legend> Recapitulatif de votre commande : </legend> <div id="recap"> <?php echo'<br />'; if(isset($_SESSION['DisqueDur'])) { echo$_SESSION['DisqueDur'].' DisqueDur'.' ( '.$_SESSION['DisqueDur']*100.' € )<br />'; } if(isset($_SESSION['Netbook'])) { Echo $_SESSION['Netbook'].' Netbook'.' ( '.$_SESSION['Netbook']*170.' € )<br />'; } if(isset($_SESSION['Tablette'])) { echo$_SESSION['Tablette'].' Tablette'.' ( '.$_SESSION['Tablette']*210.' € )<br />'; } if(isset($_SESSION['Telephone'])) {   echo$_SESSION['Telephone'].' Telephone'.' ( '.$_SESSION['Telephone']*307.' € )<br />'; } echo'<br />'; ?>  </div> <div id="validerPanier"> Total article :  <?php Echo $_SESSION['nombreArticlePanier']; ?> <br/><br/> Total à payer :  <?php echo($_SESSION['DisqueDur']*100)+($_SESSION['Netbook']*170)+($_SESSION['Tablette']*210)+( $_SESSION['Telephone']*307); echo' €<br /><br />'; ?> <a href="modifierPanier.php?valider=1"> <button>Valider</button></a>  <a href="modifierPanier.php?vider=1"> <button>Vider</button></a> </div> </fieldset> </section>  <section id="confirmation"> <fieldset> <legend>Validation de votre commande :</legend> <?php echo $_SESSION['CdeValide'];?> </fieldset> </section>      <?php if (!isset($_SESSION['nombreArticlePanier']) || empty($_SESSION['nombreArticlePanier'])) {   $_SESSION['nombreArticlePanier'] = 1; }     else {   $_SESSION['nombreArticlePanier']++; } header('Location:panier.php');  ?>  </form> </body> </html>  


sinon mon 2e fichier php(modifierPanier.php) j'ai corriger je n'ai plus d'erreur

merci de ton aide

Reply
réponses:
  • jordane45

    Déjà .. echo et non pas Echo
    Ensuite... qu'as tu modifié en tenant compte des liens que je t'ai donné ????

    - Je vois toujours un maximum PHP au milieu de ton HTML ...
    - Je ne vois pas les récupérations "propres" des variables AVANT de les utiliser
    - La fonction empty fait déjà le isset .. pas besoin d'utiliser les deux ensembles

    En gros.. tu n'as rien fait de ce qui est marqué dans les liens....

    Et une fois tout ça corrigé .... ajoute donc, au début de ton fichier, un

     print_r($_SESSION); 

    et montre nous ce que ça t'affiche....

  • moon136

    salut

    ok je vois plus clairement mes erreurs voila le print :

    print_r($_SESSION);


    Total article :
    ( ! ) Notice: Undefined index: nombreArticlePanier in C:\wamp\www\Phpdebutant\exo10\panier.php on line 75
    Call Stack
    # Time Memory Function Location
    1 0.0004 143024 {main}( ) ..\panier.php:0


    Total à payer :
    ( ! ) Notice: Undefined index: DisqueDur in C:\wamp\www\Phpdebutant\exo10\panier.php on line 80
    Call Stack
    # Time Memory Function Location
    1 0.0004 143024 {main}( ) ..\panier.php:0

    ( ! ) Notice: Undefined index: Netbook in C:\wamp\www\Phpdebutant\exo10\panier.php on line 80
    Call Stack
    # Time Memory Function Location
    1 0.0004 143024 {main}( ) ..\panier.php:0

    ( ! ) Notice: Undefined index: Tablette in C:\wamp\www\Phpdebutant\exo10\panier.php on line 80
    Call Stack
    # Time Memory Function Location
    1 0.0004 143024 {main}( ) ..\panier.php:0

    ( ! ) Notice: Undefined index: Telephone in C:\wamp\www\Phpdebutant\exo10\panier.php on line 81
    Call Stack
    # Time Memory Function Location
    1 0.0004 143024 {main}( ) ..\panier.php:0
    0 €

    Validation de votre commande :

    ( ! ) Notice: Undefined index: CdeValide in C:\wamp\www\Phpdebutant\exo10\panier.php on line 97
    Call Stack
    # Time Memory Function Location
    1 0.0004 143024 {main}( ) ..\panier.php:0

    ( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Phpdebutant\exo10\panier.php:80) in C:\wamp\www\Phpdebutant\exo10\panier.php on line 111
    Call Stack
    # Time Memory Function Location
    1 0.0004 143024 {main}( ) ..\panier.php:0
    2 0.0010 144248 header ( ) ..\panier.php:111


    peut etre jai mal compris comment recuperer une variable proprement. j'avoue PHP j'ai du mal sur certains points

  • jordane45

    Il faudrait aussi nous montrer ton code actuel (celui que tu as modifié en tenant compte des informations fournies dans le lien..)
    - Tu auras, bien entendu, placé le MAXIMUM de code PHP ... AVANT tout code html
    - Récupérer correctement les variables...

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

merci jordane j'ai suivi t indications et surtout Récupérer PROPREMENT les variables AVANT de les utiliser principale probleme j'ai plus de messages d'erreur car elles sont identifié avec print_r($_SESSION);
maintenant il reste quelque bug avec le bouton vider panier ca ne se vide pas

<?php
session_start();

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

?>
<!DOCTYPE html PUBLIC>
<html>
<head>

<meta charset="utf-8">
<title>exo panier</title>
</head>


<link href="panierproduit.css" rel="stylesheet" type="text/css">

<body>

<header>
<h1>Panier produits</h1>
</header>
<section id = "panier">

<form id = "produit" action ="modifierPanier.php?" method="get" name="produit">
<label for="disque">Disque dur 500Go</label>
<input type="text" id="disque" name="disque" prix="100€" size = '10' />
<input type="button" value="Ajouter au panier" /><br />

<label for="netbook">Netbook 10 pouces</label>
<input type="text" id="netbook" name="netbook" prix="170€" size = '10' />
<input type="button" value="Ajouter au panier" /><br />

<label for="tablette">Tablette 10.1 pouces</label>
<input type="text" id="tablette" name="tablette" prix="210€" size = '10' />
<input type="button" value="Ajouter au panier" /><br />

<label for="telephone">Samsung Galaxy S7</label>
<input type="text" id="telephone" name="telephone" prix="307€" size = '10' />
<input type="button" value="Ajouter au panier" /><br />

</section>

<section id = "RecapCommande">
<fieldset>
<legend>
Recapitulatif de votre commande :
</legend>
print_r($_SESSION);

<div id="recap">
<?php
echo'<br />';
if(isset($_SESSION['DisqueDur']))
{echo $_SESSION['DisqueDur'].' DisqueDur'.' ( '.$_SESSION['DisqueDur']*100
.' € );<br />';}
if(isset($_SESSION['Netbook']))
{echo $_SESSION['Netbook'].' Netbook'.' ( '.$_SESSION['Netbook']*170
.' € )<br />';}
if(isset($_SESSION['Tablette']))
{echo $_SESSION['Tablette'].' Tablette'.' ( '.$_SESSION['Tablette']*210
.' € )<br />';}
if(isset($_SESSION['Telephone']))
{echo $_SESSION['Telephone'].' Telephone'.' ( '.$_SESSION['Telephone']*307
.' € )<br />';}
echo'<br />';
?>
</div>

Total article :
<?php
if(isset($_SESSION['nombreArticlePanier']))
echo $_SESSION['nombreArticlePanier'];?><br/><br/>
Total à payer :
<?php
if(isset($_SESSION['DisqueDur']))
echo($_SESSION['DisqueDur']*100)+($_SESSION['Network']*170)+($_SESSION['Tablette']*210)+($_SESSION['Telephone']*307);
echo' €<br /><br />';
?>
<a href ="modifierPanier.php?valider=1">
<button>Valider</button>
</a>
<a href ="modifierPanier.php?vider=1">
<button>Vider</button>
</a>
</div>
</fieldset>
</section>
<section id ="confirmation">
<fieldset>
<legend>
Validation de votre commande :
</legend>
<?php
if(isset($_SESSION['CommandeValide']))
echo $_SESSION['CommandeValide'];
?>
</fieldset>
</section>
</body>
</html>

Reply
réponses:
  • jordane45


    j'ai plus de messages d'erreur car elles sont identifié avec print_r($_SESSION);

    Hein ?
    Quel rapport entre la récupération "propre" des variables et cette phrase ?

    Je vais te donner un exemple de ce qu'il faut faire :
    Si je prends, en exemple ton bout de code suivant :
     if(isset($_SESSION['DisqueDur'])) {echo $_SESSION['DisqueDur'].' DisqueDur'.' ( '.$_SESSION['DisqueDur']*100 .' € );<br />';} 


    Moi je le ferai de la façon suivante :
    AVANT le HTML (donc au début de ton fichier PHP ...)
     $DisqueDur = !empty($_SESSION['DisqueDur']) ? $_SESSION['DisqueDur'] *100 .' €   : NULL; 

    Et là ou tu souhaites afficher l'information (dans ton html)
     echo $DisqueDur; 

  • jordane45

    Et concernant :


    maintenant il reste quelque bug avec le bouton vider panier ca ne se vide pas

    Ben... il faudrait nous montrer le code qui est sensé "vider" ton panier pour qu'on puisse essayer de voir ce qui ne va pas

  • moon136

    merci jordane c'est résolu, c'est bien fonctionnel plus de messages d'erreur et le panier se valide bien et se vide bien

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed