Souci sur le traitement d'un formulaire
Posté : 11 nov. 2013, 18:06
Bonjour à toutes et à tous,
Je suis sur le point de finaliser le site pour ma copine coiffeuse à domicile en local. Sur le traitement de mes formulaires (j'ai repris la même base pour tous), un petit souci fait que lorsque on ne rempli pas les champs demandés, mon message d'erreur ne s'affiche pas et pourtant aucune erreur php n'est détectée. Je pense probablement à un souci d'imbrication dans mes conditions mais étant débutant dans le monde de la programmation, je suis un peu perdu. Je vous joint ci dessous le formulaire puis le script php. Merci d'avance pour votre aide.
Cordialement
Formulaire html :
Je suis sur le point de finaliser le site pour ma copine coiffeuse à domicile en local. Sur le traitement de mes formulaires (j'ai repris la même base pour tous), un petit souci fait que lorsque on ne rempli pas les champs demandés, mon message d'erreur ne s'affiche pas et pourtant aucune erreur php n'est détectée. Je pense probablement à un souci d'imbrication dans mes conditions mais étant débutant dans le monde de la programmation, je suis un peu perdu. Je vous joint ci dessous le formulaire puis le script php. Merci d'avance pour votre aide.
Cordialement
Formulaire html :
<div id="rdv">
<h3>Formulaire pour prendre rendez-vous ou en annuler un.</h3>
<form action="recu_rdv.php" enctype="multipart/form-data" method="post" id="rdv0">
<p><i>Complétez le formulaire. Les champs marqué par </i><em>*</em> sont <em>obligatoires</em></p>
<p>
<fieldset>
<legend>Vos coordonnées</legend>
<label for="prdv">Objet :<em>*</em></label>
<select name="objet" id="prdv">
<option value="demande">Prendre Rendez-Vous</option>
<option value="annulation">Annuler Un Rendez-Vous</option>
</select><br/>
<label for="civilite">Civilité :<em>*</em></label>
<select name="civilite" id="civilite">
<option value="Madame">Madame</option>
<option value="Mademoiselle">Mademoiselle</option>
<option value="Monsieur">Monsieur</option>
</select><br/>
<label for="nomcontact">Votre Nom :<em>*</em></label>
<input type="text" id="nomcontact" name="nom"><br/>
<label for="prenomcontact">Votre Prénom :<em>*</em></label>
<input type="text" id="prenomcontact" name="prenom"><br/>
<label for="email">Votre E-mail :<em>*</em></label>
<input type="email" id="email" name="email" placeholder="Exemple : [email protected]"><br/>
<label for="tel">Votre N° De Téléphone :<em>*</em></label>
<input type="text" id="tel" name="telephone" placeholder="Exemple : 0616171819"><br/>
<label for="adresse">Votre Adresse :<em>*</em></label>
<input type="text" id="adresse" name="adresse"><br/>
<label for="cp">Votre Code Postal :<em>*</em></label>
<input type="text" id="cp" name="cp" placeholder="Exemple : 16000"><br/>
<label for="ville">Votre Ville :<em>*</em></label>
<input type="text" id="ville" name="ville"><br/>
<label for="date">Date désirée :<em>*</em></label>
<input type="text" id="date" name="date" placeholder="Exemple : 15/11/2013"><br/>
<label for="heure">Heure désirée :<em>*</em></label>
<input type="text" id="heure" name="heure" placeholder="Exemple : 11:30"><br/>
<label for="presta">Prestation souhaité :<em>*</em></label>
<input type="text" id="presta" name="prestation" placeholder="Exemple : Coupe + Brushing"><br/>
</fieldset>
<fieldset>
<legend>Votre message :<em>*</em></legend>
<textarea name="message" rows="7" cols="47">Apportez ici plus de détail notamment sur l'accés à votre éventuel résidence ou un digicode...
</textarea>
</fieldset>
<p><input type="submit" value="Envoyer le message"></p>
</p>
</form>
</div>
Traitement en PHP :<div id="rdv_ok">
<?php
if (isset($_POST['objet']) && isset($_POST['civilite']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['telephone']) && isset($_POST['adresse']) && isset($_POST['cp']) && isset($_POST['ville']) && isset($_POST['date']) && isset($_POST['heure']) && isset($_POST['prestation']) && isset($_POST['message']))
{
if (is_string($_POST['objet']) && is_string($_POST['civilite']) && is_string($_POST['nom']) && is_string($_POST['prenom']) && preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$#", $_POST['email']) && is_numeric($_POST['telephone']) && is_numeric($_POST['cp']) && is_string($_POST['ville']) && is_string($_POST['message']))
{
if (!empty($_POST['objet']) && !empty($_POST['civilite']) && !empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['email']) && !empty($_POST['telephone']) && !empty($_POST['adresse']) && !empty($_POST['cp']) && !empty($_POST['ville']) && !empty($_POST['date']) && !empty($_POST['heure']) && !empty($_POST['prestation']))
{
echo "<h4>Bonjour,<br/><br/>
Votre demande de rendez-vous a bien été envoyé, une réponse vous sera envoyé très rapidement.<br/><br/>
Cordialement<br/><br/>
Retour à la page <a href=\"index.php\">Accueil</a></h4>";
}
else
{
echo "<h3>Vous n'avez pas rempli tous les champs obligatoires du formulaire.<br/>
Veuillez recommencer svp.<br/><br/>
Retour à la page <a href=\"contact.php\">Contact</a></h3>";
}}}
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare ('INSERT INTO rdv(ID, objet, civilite, nom, prenom, email, telephone, adresse, cp, ville, date, heure, prestation, message)
VALUES(:ID, :objet, :civilite, :nom, :prenom, :email, :telephone, :adresse, :cp, :ville, :date, :heure, :prestation, :message)');
$req->execute(array(
'ID' => NULL,
'objet'=>$_POST['objet'],
'civilite'=>$_POST['civilite'],
'nom'=>$_POST['nom'],
'prenom'=>$_POST['prenom'],
'email'=>$_POST['email'],
'telephone'=>$_POST['telephone'],
'adresse'=>$_POST['adresse'],
'cp'=>$_POST['cp'],
'ville'=>$_POST['ville'],
'date'=>$_POST['date'],
'heure'=>$_POST['heure'],
'prestation'=>$_POST['prestation'],
'message'=>$_POST['message']));
?>
</div>