Rendre les champs obligatoires... ?

Fermé
lodu57 Messages postés 2 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 18 novembre 2012 - 18 nov. 2012 à 18:13
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 19 nov. 2012 à 08:39
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 vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
18 nov. 2012 à 20:15
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 dimanche 18 novembre 2012 Statut Membre Dernière intervention 18 novembre 2012
18 nov. 2012 à 21:07
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 vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
19 nov. 2012 à 08:39
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