Formulaire html aide pour PHP
Posté : 20 mai 2011, 18:12
Bonjour à tous,
Je me suis fait une raison avec l'appel flash=>PHP et j'ai opté pour quelque choses de plus simple.. Enfin c'est vite dit étant donné que ça commence a coincé.. Le PHP
Voila a quoi ressemble mon HTML
Et j'ai trouvé ce code:
J'ai essayer un code du même style que m'avais présenter Moogli, tout marchais sauf le mail pour l'utilisateur. Aprés j'ai donné la même adresse que celle du formulaire, sa viendrais de ça?
En revenant a mon Html, je suppose que pour faire marcher mon PHP je dois modifier ses deux codes:
Celui ci a l'air de s'occuper des variable obligatoire...
Et celui la de l'affichage de mon formulaire...
Je me suis fait une raison avec l'appel flash=>PHP et j'ai opté pour quelque choses de plus simple.. Enfin c'est vite dit étant donné que ça commence a coincé.. Le PHP
Voila a quoi ressemble mon HTML
Au PHP maintenant, je souhaite que tout soit envoyer (logique) mais que la personne ayant remplis le formulaire est une confirmation écrite avec retour a l'accueil, puis l’envoi d'un mail de confirmation.<form id="contact" method="post" action="mail.php">
<P><P><P><H3><CENTER><B><FONT COLOR="#000000">Contact</FONT></B></CENTER></H3>
<CENTER><HR WIDTH="75%" NOSHADE color=noir><P>
<I>Les champs marqués</I><FONT COLOR="#FF0000"><B>*</B></FONT><I>
doivent obligatoirement être renseignés </I>
<TABLE BORDER=0 HEIGHT=65><TR><TD WIDTH=154>
<P><B>Votre Nom </B><FONT COLOR="#FF0000"><B>* </B></FONT><INPUT TYPE=text NAME="Nom" VALUE="" SIZE=50>
<P><B>Votre Prénom </B><FONT COLOR="#FF0000"><B>* </B></FONT><INPUT TYPE=text NAME="prenom" VALUE="" SIZE=50>
<P><B>Votre adresse E-Mail </B><FONT COLOR="#FF0000"><B>* </B></FONT><INPUT TYPE=text NAME="mail" VALUE="" SIZE=40>
</TD></TR></TABLE></FONT><P><P>
<BR><B>Raisons de votre E-mail</B><P>
<TABLE BORDER=0 HEIGHT=65><TR><TD WIDTH=300>
<P><INPUT TYPE=radio NAME=raison CHECKED="checked" VALUE=rensseignement>Rensseignement
<P><INPUT TYPE=radio NAME=raison VALUE=massage>Massage au Parfum d'Evasion
<P><INPUT TYPE=radio NAME=raison VALUE=massage>Massage a l'hotel "La Charpiniére"
<P><INPUT TYPE=radio NAME=raison VALUE=massage>Massage a domicile
<P><INPUT TYPE=radio NAME=raison VALUE=fidelite>Carte de fidélité
<P><INPUT TYPE=radio NAME=raison VALUE=cadeau>Chéque cadeau
</TD></TR></TABLE></FONT><P><P>
<BR><B>Choix du massage</B><P>
<TABLE BORDER=0 HEIGHT=65><TR><TD WIDTH=300>
<P><INPUT TYPE=radio NAME=massage CHECKED="checked" VALUE=aucun>Aucun
<P><INPUT TYPE=radio NAME=massage VALUE=cali1>Californien Evasion
<P><INPUT TYPE=radio NAME=massage VALUE=Cali2>Californien Relax
<P><INPUT TYPE=radio NAME=massage VALUE=Cali3>Californien Futur-Maman 30min
<P><INPUT TYPE=radio NAME=massage VALUE=Cali4>Californien Futur-Maman 1h
</TD><TD WIDTH=300>
<P><INPUT TYPE=radio NAME=massage VALUE=reflex1>Réflexologie Plantaire 30min
<P><INPUT TYPE=radio NAME=massage VALUE=reflex2>Réflexologie Plantaire 1h
<P><INPUT TYPE=radio NAME=massage VALUE=drain1>Drainage Lymphatique Visage 30min
<P><INPUT TYPE=radio NAME=massage VALUE=drain2>Drainage Lymphatique Visage 1h
<P><INPUT TYPE=radio NAME=massage VALUE=drain3>Drainage Lymphatique Jambes 30min
</TD><TD WIDTH=300>
<P><INPUT TYPE=radio NAME=massage VALUE=drain4>Drainage Lymphatique Jambes 1h
<P><INPUT TYPE=radio NAME=massage VALUE=drain5>Drainage Lymphatique Visage & Jambes
<P><INPUT TYPE=radio NAME=massage VALUE=amma>Le Amma-massage assis
<P><INPUT TYPE=radio NAME=massage VALUE=apana>Apana Vayu
</TD></TR></TABLE></FONT><P>
<BR><B>Veuillez noter vos demandes complémentaires ci-dessous</B>
<P><TEXTAREA NAME=Demandes ROWS=8 COLS=50 WRAP=virtual></TEXTAREA><P>
<INPUT TYPE=submit NAME=Envoyer VALUE="Envoyer">
<INPUT TYPE=reset NAME=Effacer VALUE="Effacer" ></CENTER>
<HR WIDTH="75%" NOSHADE color=noir></CENTER></FORM><P><P><P>
</BODY>
</form>
Et j'ai trouvé ce code:
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'mon adresse';
// copie ? (envoie une copie au visiteur)
$copie = 'oui';
// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';
// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP. ";
// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}
// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
if (isset($_POST['envoi']))
{
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = (IsEmail($email)) ? false : true;
if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = html_entity_decode($message);
$message = str_replace(''',"'",$message);
$message = str_replace('’',"'",$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
$err_formulaire = true;
};
}; // fin du if (!isset($_POST['envoi']))
if (($err_formulaire) || (!isset($_POST['envoi'])))
{
// afficher le formulaire
echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
echo ' <fieldset><legend>Vos coordonnées</legend>'."\n";
echo ' <p>'."\n";
echo ' <label for="nom">Nom :</label>'."\n";
echo ' <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
echo ' </p>'."\n";
echo ' <p>'."\n";
echo ' <label for="email">Email :</label>'."\n";
echo ' <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
echo ' </p>'."\n";
echo ' </fieldset>'."\n";
echo ' <fieldset><legend>Votre message :</legend>'."\n";
echo ' <p>'."\n";
echo ' <label for="objet">Objet :</label>'."\n";
echo ' <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
echo ' </p>'."\n";
echo ' <p>'."\n";
echo ' <label for="message">Message :</label>'."\n";
echo ' <textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
echo ' </p>'."\n";
echo ' </fieldset>'."\n";
echo ' <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
echo '</form>'."\n";
};
?>
J'ai essayer un code du même style que m'avais présenter Moogli, tout marchais sauf le mail pour l'utilisateur. Aprés j'ai donné la même adresse que celle du formulaire, sa viendrais de ça?
En revenant a mon Html, je suppose que pour faire marcher mon PHP je dois modifier ses deux codes:
Celui ci a l'air de s'occuper des variable obligatoire...
// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
Et celui la de l'affichage de mon formulaire...
Pouvez vous confirmez?if (($err_formulaire) || (!isset($_POST['envoi'])))
{
// afficher le formulaire
echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
echo ' <fieldset><legend>Vos coordonnées</legend>'."\n";
echo ' <p>'."\n";
echo ' <label for="nom">Nom :</label>'."\n";
echo ' <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
echo ' </p>'."\n";
echo ' <p>'."\n";
echo ' <label for="email">Email :</label>'."\n";
echo ' <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
echo ' </p>'."\n";
echo ' </fieldset>'."\n";
echo ' <fieldset><legend>Votre message :</legend>'."\n";
echo ' <p>'."\n";
echo ' <label for="objet">Objet :</label>'."\n";
echo ' <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
echo ' </p>'."\n";
echo ' <p>'."\n";
echo ' <label for="message">Message :</label>'."\n";
echo ' <textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
echo ' </p>'."\n";
echo ' </fieldset>'."\n";
echo ' <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
echo '</form>'."\n";
};