Bonjour,
j'ai suivi très attentivement le tutoriel sur les formulaires php avec contact.html et contact.php avec des champs
http://www.grafikart.fr/tutoriels/php/formulaire-php-21
Je souhaite faire la même chose avec des cases à cocher, des menus déroulants, listes, menu. C'est à dire que je souhaite controler tous ces éléments du formulaire.
Comment faire?
Merci beaucoup de bien vouloir m'aider.
Albert
voici ma page html:
<table border="2" width="50%" align="center">
<tr>
<td width="100%" bgcolor="#A6CAF0">
<form name="form" action="validation.php" method="post">
<fieldset>
<br />
<legend><h3>Vos coordonnées</h3></legend>
<table border="0">
<tr>
<td align="left">Nom</td>
<td><input type="text" size="20" name="nom" value="" /></td>
</tr>
<tr>
<td align="left">Prénom</td>
<td><input type="text" size="20" name="prenom" value="" /></td>
</tr>
<tr>
<td align="left">E-Mail</td>
<td><input type="text" size="20" name="email" value="" /></td>
</tr>
<tr>
<td align="left">Ville</td>
<td><input type="text" size="20" name="ville" value="" /></td>
</tr>
<tr>
<td align="left">Code postal</td>
<td><input type="text" size="5" name="code" value="" /></td>
</tr>
<tr>
<td align="left">Département</td>
<td>
<select name="departement" size="3">
<option>Seine-Saint-Denis</option>
<option>Val de Marne</option>
<option>Seine et Marne</option>
<option>Paris</option>
<option>Yvelines</option>
<option>Essonne</option>
<option>Hauts de Seine</option>
<option>Val d'Oise</option>
</select>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<br />
<legend><h3>Votre type d'emploi</h3></legend>
<table border="0">
<tr>
<td><input type="radio" name="emploi" value="enseignement" /></td>
<td>enseignement</td>
<td><input type="radio" name="emploi" value="éducation" /></td>
<td>éducation</td>
<td><input type="radio" name="emploi" value="administration" /></td>
<td>administration</td>
</tr>
</table>
</fieldset>
<fieldset>
<br />
<legend><h3>Vos loisirs préférés</h3></legend>
<input type="checkbox" name="loisir]" value="Son-vidéo" />Son-vidéo
<input type="checkbox" name="loisir]" value="Télévision" />Télévision
<input type="checkbox" name="loisir]" value="Cinéma" />Cinéma<br />
<input type="checkbox" name="loisir]" value="Programmation" />Programmation
<input type="checkbox" name="loisir]" value="Sports" />Sports
<input type="checkbox" name="loisir]" value="Internet" />Internet
<input type="checkbox" name="loisir]" value="Son-vidéo" />Son-vidéo
</fieldset>
<fieldset>
<br />
<legend><h3>Écrivez votre message</h3></legend>
<textarea name="message" rows="3" cols="40"></textarea>
</fieldset>
<hr size="3" noshade="noshade" />
<div align="center">
<input type="submit" name="enregistrer" value="Enregistrer" onClick="verifForm(this.form)" />
<input type="reset" name="annuler" value="Annuler" />
</div>
</form>
</td>
</tr>
</table>
et voici ma page php
<?php
if(isset($_POST) && isset($_POST"nom"]) && isset($_POST"prenom"]) && isset($_POST"email"]) && isset($_POST"ville"]) && isset($_POST"code"]) && isset($_POST"departement"]) && isset($_POST"emploi"]) && isset($_POST"loisir"]) && isset($_POST"message"])){
extract($_POST);
if(!empty($nom) && !empty($prenom) && !empty($email) && !empty($ville) && !empty($code) && !empty($departement) && !empty($emploi) && !empty($loisir) && !empty($message)){
$message=str_replace("\'","'",$message);
$destinataire="albert@orange.fr";
$sujet="Formulaire de contact";
$msg="Un nouveau message est arrivé \n
Nom: $nom \n
Prenom: $prenom \n
Email: $email \n
Ville: $ville \n
Code: $code \n
Departement: $departement \n
Emploi: $emploi \n
Loisir: $loisir \n
Message: $message";
/*Si 1 destinataire:
$entete="From: $mail";*/
/*Si plusieurs destinataires:
$entete="From: From: $email \n
Cc: toiencopie@example.com \n
Bcc: luiencache@example.com";*/
$entete="From: $email \n
Bcc: serge.soyez@ujf-grenoble.fr";
mail($destinataire, $sujet, $msg, $entete);
echo("<h2>Votre message a bien été envoyé.<br>
Nous vous répondrons dans les plus brefs délais.</h2>");
}
else{
echo("<h2>Vous n'avez pas rempli tous les champs!<br>
Votre formulaire n'a pas été transmis.<br>
Merci de bien vouloir remplir tous les champs.</h2>");
}
}
?>
comme ceci?
<?php
if(isset($_POST) && isset($_POST"nom"]) && isset($_POST"prenom"]) && isset($_POST"email"]) && isset($_POST"ville"]) && isset($_POST"code"]) && isset($_POST"message"])){
extract($_POST);
if(isset($_POST"departement"]) && !empty($departement)){
if(isset($_POST"emploi"]) && !empty($emploi)){
if(isset($_POST"loisir"]) && !empty($loisir)){
if(!empty($nom) && !empty($prenom) && !empty($email) && !empty($ville) && !empty($code) && !empty($departement) && !empty($emploi) && !empty($loisir) && !empty($message)){
$message=str_replace("\'","'",$message);
$destinataire="albert@orange.fr";
$sujet="Formulaire de contact";
$loisirs = '';
foreach($loisir as $c => $v){
$loisirs .= $v.' - ';
}
$msg="Un nouveau message est arrivé \n
Nom: $nom \n
Prenom: $prenom \n
Email: $email \n
Ville: $ville \n
Code: $code \n
Departement: $departement \n
Emploi: $emploi \n
Loisir: $loisirs \n
Message: $message";
/*Si 1 destinataire:
$entete="From: $mail";*/
/*Si plusieurs destinataires:
$entete="From: From: $email \n
Cc: toiencopie@example.com \n
Bcc: luiencache@example.com";*/
$entete="From: $email \n
Bcc: serge.soyez@ujf-grenoble.fr";
mail($destinataire, $sujet, $msg, $entete);
echo("<h2>Votre message a bien été envoyé.<br>
Nous vous répondrons dans les plus brefs délais.</h2>");
}
else{
echo("<h2>Vous n'avez pas rempli tous les champs!<br>
Votre formulaire n'a pas été transmis.<br>
Merci de bien vouloir remplir tous les champs.</h2>");
}
}
else{
echo 'Loisir';
}
}
else{
echo 'Emploi';
}
}
else{
echo 'Département';
}
}
else{
echo("<h2>Vous n'avez pas rempli tous les champs!<br>
Votre formulaire n'a pas été transmis.<br>
Merci de bien vouloir remplir tous les champs.</h2>");
}
?>
je n'ai pas trop compris mais avec ce qui suit tout marche.
ps:utilise les balises code la prochaine fois :)
HTML:
<table border="2" width="50%" align="center">
<tr>
<td width="100%" bgcolor="#A6CAF0">
<form name="form" action="validation.php" method="post">
<fieldset>
<br />
<legend><h3>Vos coordonnées</h3></legend>
<table border="0">
<tr>
<td align="left">Nom</td>
<td><input type="text" size="20" name="nom" value="" /></td>
</tr>
<tr>
<td align="left">Prénom</td>
<td><input type="text" size="20" name="prenom" value="" /></td>
</tr>
<tr>
<td align="left">E-Mail</td>
<td><input type="text" size="20" name="email" value="" /></td>
</tr>
<tr>
<td align="left">Ville</td>
<td><input type="text" size="20" name="ville" value="" /></td>
</tr>
<tr>
<td align="left">Code postal</td>
<td><input type="text" size="5" name="code" value="" /></td>
</tr>
<tr>
<td align="left">Département</td>
<td>
<select name="departement" size="3">
<option value="Seine-Saint-Denis">Seine-Saint-Denis</option>
<option value="Val de Marne">Val de Marne</option>
<option value="Seine et Marne">Seine et Marne</option>
<option value="Paris">Paris</option>
<option value="Yvelines">Yvelines</option>
<option value="Essonne">Essonne</option>
<option value="Hauts de Seine">Hauts de Seine</option>
<option value="Val d'Oise">Val d'Oise</option>
</select>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<br />
<legend><h3>Votre type d'emploi</h3></legend>
<table border="0">
<tr>
<td><input type="radio" name="emploi" value="enseignement" /></td>
<td>enseignement</td>
<td><input type="radio" name="emploi" value="éducation" /></td>
<td>éducation</td>
<td><input type="radio" name="emploi" value="administration" /></td>
<td>administration</td>
</tr>
</table>
</fieldset>
<fieldset>
<br />
<legend><h3>Vos loisirs préférés</h3></legend>
<input type="checkbox" name="loisir]" value="Son-vidéo" />Son-vidéo
<input type="checkbox" name="loisir]" value="Télévision" />Télévision
<input type="checkbox" name="loisir]" value="Cinéma" />Cinéma<br />
<input type="checkbox" name="loisir]" value="Programmation" />Programmation
<input type="checkbox" name="loisir]" value="Sports" />Sports
<input type="checkbox" name="loisir]" value="Internet" />Internet
<input type="checkbox" name="loisir]" value="Son-vidéo" />Son-vidéo
</fieldset>
<fieldset>
<br />
<legend><h3>Écrivez votre message</h3></legend>
<textarea name="message" rows="3" cols="40"></textarea>
</fieldset>
<hr size="3" noshade="noshade" />
<div align="center">
<input type="submit" name="enregistrer" value="Enregistrer" onClick="verifForm(this.form)" />
<input type="reset" name="annuler" value="Annuler" />
</div>
</form>
</td>
</tr>
</table>
Validation.php
<?php
if(isset($_POST) && isset($_POST"nom"]) && isset($_POST"prenom"]) && isset($_POST"email"]) && isset($_POST"ville"]) && isset($_POST"code"]) && isset($_POST"departement"]) && isset($_POST"emploi"]) && isset($_POST"loisir"]) && isset($_POST"message"])){
extract($_POST);
if(!empty($nom) && !empty($prenom) && !empty($email) && !empty($ville) && !empty($code) && !empty($departement) && !empty($emploi) && !empty($loisir) && !empty($message)){
$message=str_replace("\'","'",$message);
$destinataire="albert@orange.fr";
$sujet="Formulaire de contact";
$loisirs = '';
foreach($loisir as $c => $v){
$loisirs .= $v.' - ';
}
$msg="Un nouveau message est arrivé \n
Nom: $nom \n
Prenom: $prenom \n
Email: $email \n
Ville: $ville \n
Code: $code \n
Departement: $departement \n
Emploi: $emploi \n
Loisir: $loisirs \n
Message: $message";
/*Si 1 destinataire:
$entete="From: $mail";*/
/*Si plusieurs destinataires:
$entete="From: From: $email \n
Cc: toiencopie@example.com \n
Bcc: luiencache@example.com";*/
$entete="From: $email \n
Bcc: serge.soyez@ujf-grenoble.fr";
mail($destinataire, $sujet, $msg, $entete);
echo("<h2>Votre message a bien été envoyé.<br>
Nous vous répondrons dans les plus brefs délais.</h2>");
}
else{
echo("<h2>Vous n'avez pas rempli tous les champs!<br>
Votre formulaire n'a pas été transmis.<br>
Merci de bien vouloir remplir tous les champs.</h2>");
}
}
?>
Merci de ta réponse, en fait je voulais que le "controle" php dise: "vous n'avez pas coché une case" ou "vous n'avez pas fait de choix dans le menu déroulant".
Comment faire?
Merci
Je viens de tout vérifier (je suis novice et très lent....)
C'EST EXACTEMENT CE QUE JE VOULAIS
Vraiment un très grand merci à toi
Merci beaucoup
Albert