Creation panier produit
Résolu
moon136
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
moon136 Messages postés 71 Date d'inscription Statut Membre Dernière intervention -
moon136 Messages postés 71 Date d'inscription Statut Membre Dernière intervention -
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
fichier modifier.php :
merci de votre aide
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
A voir également:
- Creation panier produit
- Clé de produit windows 10 gratuit - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
4 réponses
Bonjour,
Première erreur... tu n'as pas fermé la balise PHP avant de mettre ton html
A remplacer par :
Un peu de lecture au passage :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
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 :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
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 :
merci de ton aide. je continue a chercher.
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.
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
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
J'ai fait des corrections et maintenant il reste des erreurs de syntaxe sur mes lignes écho :
sinon mon 2e fichier php(modifierPanier.php) j'ai corriger je n'ai plus d'erreur
merci de ton aide
<?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
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
et montre nous ce que ça t'affiche....
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....
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
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
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
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>
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;
devient :
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 :