Creation panier produit
Résolu/Fermé
moon136
Messages postés
71
Date d'inscription
samedi 12 août 2017
Statut
Membre
Dernière intervention
17 avril 2018
-
12 mars 2018 à 00:00
moon136 Messages postés 71 Date d'inscription samedi 12 août 2017 Statut Membre Dernière intervention 17 avril 2018 - 18 mars 2018 à 21:12
moon136 Messages postés 71 Date d'inscription samedi 12 août 2017 Statut Membre Dernière intervention 17 avril 2018 - 18 mars 2018 à 21:12
A voir également:
- Creation panier produit
- Clé de produit windows 10 - Guide
- Creation compte gmail - Guide
- Création organigramme - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
4 réponses
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
12 mars 2018 à 12:16
12 mars 2018 à 12:16
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
moon136
Messages postés
71
Date d'inscription
samedi 12 août 2017
Statut
Membre
Dernière intervention
17 avril 2018
12 mars 2018 à 15:07
12 mars 2018 à 15:07
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.
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
12 mars 2018 à 18:23
12 mars 2018 à 18:23
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 !!!
et visiblement tu n'as pas été lire le lien que je t'ai donné !
Donc commence par ça... ensuite on verra !!!
moon136
Messages postés
71
Date d'inscription
samedi 12 août 2017
Statut
Membre
Dernière intervention
17 avril 2018
Modifié le 12 mars 2018 à 22:35
Modifié le 12 mars 2018 à 22:35
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
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
>
moon136
Messages postés
71
Date d'inscription
samedi 12 août 2017
Statut
Membre
Dernière intervention
17 avril 2018
13 mars 2018 à 22:14
13 mars 2018 à 22:14
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.
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.
moon136
Messages postés
71
Date d'inscription
samedi 12 août 2017
Statut
Membre
Dernière intervention
17 avril 2018
13 mars 2018 à 22:41
13 mars 2018 à 22:41
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
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
13 mars 2018 à 22:57
13 mars 2018 à 22:57
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....
moon136
Messages postés
71
Date d'inscription
samedi 12 août 2017
Statut
Membre
Dernière intervention
17 avril 2018
14 mars 2018 à 14:25
14 mars 2018 à 14:25
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
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
14 mars 2018 à 14:31
14 mars 2018 à 14:31
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...
- Tu auras, bien entendu, placé le MAXIMUM de code PHP ... AVANT tout code html
- Récupérer correctement les variables...
moon136
Messages postés
71
Date d'inscription
samedi 12 août 2017
Statut
Membre
Dernière intervention
17 avril 2018
16 mars 2018 à 01:28
16 mars 2018 à 01:28
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>
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
16 mars 2018 à 10:04
16 mars 2018 à 10:04
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
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
16 mars 2018 à 10:11
16 mars 2018 à 10:11
Et concernant :
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
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
Messages postés
71
Date d'inscription
samedi 12 août 2017
Statut
Membre
Dernière intervention
17 avril 2018
18 mars 2018 à 21:12
18 mars 2018 à 21:12
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
Modifié le 12 mars 2018 à 12:20
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 :