Mon script ne veut pas m'obéir !

Résolu/Fermé
mencle50 Messages postés 122 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 4 octobre 2009 - 21 déc. 2008 à 23:41
mencle50 Messages postés 122 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 4 octobre 2009 - 22 déc. 2008 à 16:00
Bonjour,
Débutant en php, j'ai écrit un formulaire pour une commande en html et un traitement en php. Mon problème n'est surement pas difficile a résoudre mais je ne m'e sors pas.
Voici le code html du formulaire:
<!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>Commande de CD Lady and tramps</title>
<link rel="stylesheet" media="screen" type="text/css" title="Mon design" href="design.css" />

</head>

<body>
<h2>Formulaire de commande de CD Lady and tramps</h2>
<form method="post" action="traitement4.php">
<p class="warning">Attention : vérifiez les informations que vous entrez avant de cliquer sur envoyer car vous ne pourrez pas les modifier par la suite !</p>
   <fieldset>
       <legend>Vos coordonnées</legend>
       <p>Civilité<br/>
       <input type="radio" name="civilité" value="monsieur" id="especes" tabindex="40" checked="checked" /> <label for="monsieur">M.</label>
       <input type="radio" name="civilité" value="madame" id="chèque" tabindex="40" /> <label for="madame">Mme.</label><br/>
       
       <label for="nom">Nom</label><br />
       <input type="text" name="nom" id="nom" tabindex="10" /><br />
       
       <label for="prenom">Prenom </label><br />
       <input type="text" name="prenom" id="prenom" tabindex="20" /><br />

       <label for="email">E-mail</label><br />
       <input type="text" name="email" id="email" tabindex="30" /><br />
       
       <label for="adresse">Adresse</label><br />
       <input type="text" name="adresse" id="adresse" tabindex="50" /><br />
       
       <label for="code_postal">Code postal</label><br />
       <input type="text" name="code_postal" id="code_postal" tabindex="5" /><br />
       
       <label for="ville">Ville</label><br />
       <input type="text" name="ville" id="ville" tabindex="30" /><br />
       </p>
       
   </fieldset>
   
   <fieldset>
       <legend>Votre commande</legend>
       
       <p>Quantité (8€ l'unité)<br />
<br />
       <input type="text" name="quantité" id="quantité" tabindex="30" /><br />
   </p>    
       <p>Mode de paiement<br />
       <input type="radio" name="mode_de_paiement" value="especes" id="especes" tabindex="40" checked="checked" /> <label for="especes">Especes</label>
       <input type="radio" name="mode_de_paiement" value="chèque" id="chèque" tabindex="40" /> <label for="chèque">Chèque</label>
       </p>
       </fieldset>
       

   <fieldset>
       <legend>Conditions</legend>
<p class="sous_titre">Paiement et envoi</p>
<p>Après reception de votre commande un e-mail de confirmation vous est envoyé où le montant à payer vous est indiqué.<br/>
Le produit vous est envoyé après reception du paiement, les frais de port sont gratuits.</p>
<p>Le paiement est à adresser a l'adresse (<strong>chèques a l'ordre de Lady and tramps</strong>) :<br /> Lady and tramps<br />chez Simon Prieur<br />13 Rue Saint Pierre<br />50300 Le Val Saint Père<br />
Cette adresse vous sera rappellée dans l'e-mail de confirmation.
       </p>
       <p class="sous_titre">Droits d'auteurs</p>
       <p>Tous droits du producteur phonographique et du propriétaire de l'oeuvre enregistrée réservés. Sauf autorisation, la duplication, la location, le prêt, l'utilisation de ce disque pour exécution publique et radio diffusion sont interdits.<br/>
       Pour plus d'informations, contactez-nous à l'adresse : ladyandtramps@hotmail.fr ou au 06 89 61 88 14 / 06 88 15 02 83.
      
  </fieldset>

   
   <p>
       <input type="reset" /> <input type="submit" /> 
   </p>
   
</form>

</body>
</html>

Celui du traitement:
<!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>Document sans titre</title>
<style type="text/css">
div{background-color: #FFFFCC;margin: 10px;}
p{margin-left: 15px;margin-bottom: 15px;}
.erreur{font-size: 18px;}
</style>
</head>

<body>
<div>
<p> <?php 
$civilité = $_POST['civilité']; //récupération des variables du formulaire
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$adresse = $_POST['adresse'];
$code_postal = $_POST['code_postal'];
$ville = $_POST['ville'];
$quantité = $_POST['quantité'];
$mode_de_paiement = $_POST['mode_de_paiement'];
$prix = $quantité*8; //calcul du prix total de la commande
$message = "$civilité $nom $prenom a commandé $quantité cd pour un prix de $prix € à ladresse suivante: \n$nom $prenom\n$adresse\n$code_postal $ville.\nIl effectuera le paiement par $mode_de_paiement.\n Il attend un email de confirmation à l'adresse : $email" ;//mail

if(isset($_POST['nom']))//test des variables
{
	if(isset($_POST['prenom']))
	{
		if(isset($_POST['email']))
		{
			if(isset($_POST['adresse']))
			{
				if(isset($_POST['code_postal']))
				{
					if(isset($_POST['ville']))
					{
echo "Bonjour $civilité $nom $prenom.<br/>Vous avez commandé $quantité cd pour un prix de $prix € à 								ladresse suivante:<br/> $nom $prenom<br/>$adresse<br/>$code_postal $ville.<br/>Vous effectuerez le paiement par $mode_de_paiement <br/> Nous allons vous envoyer un email de confirmation à ladresse : $email" ;
mail("mencle50@gmail.com", "Un client a comandé un cd", "$message");
					}
				}
			}
		}
	}
}
else
{
echo 'Vous navez pas rempli tous les champs! Veuillez <a href="bon_de_commande.html">revenir sur la page précèdente</a> pour remplir les chanps manquants';
}
?> 
</p>

</div>
</body>
</html>

Le problème est que même si il n'y a rien d'écrit dans le formulaire, il m'affiche quand même le texte qui ne doit s'afficher que si on a écrit dans les champs, je pense que le probleme vient du fait que je n'utilise pas la bonne fonction! Je comprends mais je ne sais pas quoi mettre pour remplacer isset qui n'est pas adapté vu que même quand on n'écrit rien, une variable est créee.
Au passage comment pourrai-je faire pour que lorsque que l'on clique sur envoyer dans le formulaire, une petite fenêtre s'ouvre avec écrit "etes vous sur de vouloir envoyer votre commande : oui/non" ?
J'attends impatiemment votre réponse, à bientôt
merci.
oOM€ncl3Oo
A voir également:

7 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
22 déc. 2008 à 00:57
Bonjour,

Si tu envoies ton formulaire, $_POST['nom'] existe obligatoirement, mais il est vide.

il faut faire une comparaison de valeur, et non d'existance.

if ($_POST['nom'] != '') {
  action;
}


==> Si $_POST['nom'] est vide je fais telle action
0
mencle50 Messages postés 122 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 4 octobre 2009 15
22 déc. 2008 à 12:43
Mais oui !!!! Où avais-je la tête ? Merci beaucoup !
Par contre, as-tu une idée pour la fenêtre de confirmation une fois cliqué sur envoyer dans le formulaire ?
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
22 déc. 2008 à 14:22
que veux-tu qu'elle fasse et qu'elle dise cette fenêtre ?
0
mencle50 Messages postés 122 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 4 octobre 2009 15
22 déc. 2008 à 14:24
En fait je voudrais que cette fenêtre soit mon traitement.php et que le mail soit envoyé une fois que l'on a cliqué sur un bouton !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Belkir@ Messages postés 66 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 16 juillet 2010 15
22 déc. 2008 à 15:05
Bonjour,

Pour ta fenêtre, je te conseille de te tourner vers JavaScript.

https://www.toutjavascript.com/reference/ref-window.confirm.php

Belkira.
0
mencle50 Messages postés 122 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 4 octobre 2009 15
22 déc. 2008 à 15:12
Merci, ce n'est pas exactement ce que je voulais faire mais ca va convenir parfaitement de toute facon je n'ai plus le temps de faire mieux !
Merci à vous pour vos réponses !
Je teste cette fenêtre, si ca marche je passe le sujet en résolu
merci encore
0
mencle50 Messages postés 122 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 4 octobre 2009 15
22 déc. 2008 à 16:00
Ok ca marche impeccable encore merci !
Sujet résolu
0