Rendre les champs obligatoires... ?

lodu57 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,

J'ai réussi à créer et rendre opérationnel un formulaire de contact pour mon site internet, mais cependant je n'arrive pas à rendre les champs obligatoires en bloquant l'envoi et affichant une alerte. Il paraît que c'est un code en PHP, J'en ai trouvé quelques uns et tenté mainte fois l'affaire mais je n'y arrive pas, si quelqu'un pouvait m'aider...

Merci par avance.

Mon code HTML :

<div align=center>
<form method=POST action=formmail2.php >
<input type=hidden name=subject value=formmail>
<table>
<tr><td>Votre Nom :</td>
<td><input type=text style='background-color: #CCCCCC;' name=realname size=30></td></tr>
<tr><td>Votre Email :</td>
<td><input type=text style='background-color: #CCCCCC;' name=email size=30></td></tr>
<tr><td>Sujet :</td>
<td><input type=text style='background-color: #CCCCCC;' name=title size=30></td></tr>
<tr>
<td colspan=2><p align="left">Votre Message :<br>
<textarea style='background-color: #CCCCCC;' COLS=50 ROWS=6 name=comments></textarea>
</p>
</td></tr>
</table>
<input type=submit value=Envoyer>
</form>
</div>


Mon code PHP :

<?php
/* Remplacer votre_adresse@mail.net par votre adresse mail
Remplacer www.votre_domaine.net par votre nom de domaine */

$adresse = "xxxx@xxxxxxx.xxx";
$site = "xxxxxxxxx.xxxx";

$TO = $adresse;

$head = "From: ".$adresse."\n";
$head .= "X-Sender: <".$adresse.">\n";
$head .= "X-Mailer: PHP\n";
$head .= "Return-Path: <".$adresse.">\n";
$head .= "Content-Type: text/plain; charset=iso-8859-1\n";

$sujet = "Formulaire de contact";

$informations = "
Nom: ".$_POST['realname']." \r\n
Email du formulaire: ".$_POST['email']." \r\n
Sujet du formulaire: ".$_POST['title']."\r\n
Message: ".$_POST['comments']." \r\n
";


$res = mail($TO, $sujet ,$informations, $head);

if (true == $res) {
Header("Location: http://".$site."/formail2_ok.html" );
} else {
Header("Location: http://".$site."/formail2_pasok.html" );
}
?>


3 réponses

Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
1°) Html -> Rajoute l'attribut required (required='required' pour la validation strict)
ça sera déjà un petit plus, même si c'est pas 100% prêt, et de toute façon pas sécurisé.

2°) Le code php ->
Il te suffit de tester l'existance de tes variables
if(!$_POST["email"]) $msg="Erreur, adresse email inexistante<br />";
if(!$_POST["realname"]) $msg="Erreur, vous devez entrer votre nom<br />";

Ensuite il ne te reste plus que le if avec $msg :

if(!$msg){
TON SCRIPT
}else{
echo $msg;
}
1
lodu57 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup,
Cela ne fonctionne que sous Firefox et Opéra, Safari et IE envoie quand même le message.... je pense que c'est l'attribut "required=required" qui est pris en charge par une fonctionnalité interne des navigateurs car j'ai le message "Veuillez compléter ce champ" chez Firefox et "Ceci est un champ obligatoire" sous opéra
Mais c'est déjà cela de gagner.
0
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
Oui, c'est un p'tit bonus qui n'utilise pas de javascript, tout le monde ne l'aura pas, mais c'est déjà ça de pris, l'important est le code php que personne ne pourra passer.
0