Salut!!
Voilà, j'ai un code qui fonctioone en PHP pour vérifier si un champ est rempli ou non:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <?php $msg_erreur = "Erreur! Les champs suivants doivent etre obligatoirement remplis :<br/><br/>"; $msg_ok = "Votre demande de contact a bien ete prise en compte!<br/>" . "Je vous repondrai des que possible." . "<br/>" . "Redirection en cours..."; $message = $msg_erreur; define('MAIL_DESTINATAIRE','contactyanispc@gmail.com'); // Votre e-mail define('MAIL_SUJET','Demande de contact'); // L'objet du message // Vérification des champs if (empty($_POST['Civilite'])) $message .= "Votre Civilite<br/>"; if (empty($_POST['Prenom'])) $message .= "Votre Prenom<br/>"; if (empty($_POST['Nom'])) $message .= "Votre Nom<br/>"; if (empty($_POST['Email'])) $message .= "Votre E-Mail<br/>"; if (empty($_POST['Msg'])) $message .= "Votre Message<br/>"; // Si un champ est vide, on affiche le message d'erreur et on stop le script if (strlen($message) > strlen($msg_erreur)) { echo $message; die(); } // Sinon c'est ok donc on continue foreach($_POST as $index => $valeur) { $$index = stripslashes(trim($valeur)); } // Préparation de l'entête du mail: $mail_entete = "MIME-Version: 1.0\r\n"; $mail_entete .= "From:{$_POST['Prenom']}" . " " . "{$_POST['Nom']} " . "<{$_POST['Email']}>\r\n"; $mail_entete .= 'Reply-To: '.$_POST['Email']."\r\n"; $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"'; $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n"; $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n"; // préparation du corps du mail $mail_corps = "Demande de contact: $Civilite $Prenom $Nom\n"; $mail_corps .= "Téléphone: $Telephone\n\n"; $mail_corps .= "Informations supplementaires: $Msg"; // Envoi du mail if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) { // Le mail est bien expédié header('Location: ContactValide.html'); } else { // Le mail n'a pas été expédié header('Location: ContactInValide.html'); } ?>
Mon problème est le suivant:
Actuellement l'utilisateur clic sur le bouton envoyer d'un formulaire et cela appelle la fonction. Si les champs sont rempli, le formulaire est envoyé. Si un champ ne l'est pas, voilà ce qui ce passe:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // Si un champ est vide, on affiche le message d'erreur et on stop le script if (strlen($message) > strlen($msg_erreur)) { echo $message; die(); }
Avec die(); tout se trop.. Ca fonctionne mais c'est moche et ca oblige l'utilisateur à valider le formulaire avant de voir quel champ doit etre rempli..
J'aimerai savoir qu'elles sont les modifications à apporter a mon code pour pouvoir dire a l'utilisateur que le champ doit être obligatoirement rempli lorsqu'il commence à taper dedans (onkeyup?)
Merci d'avance!
PS: mon code HTML au cas ou:
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <form method="post" action="TraitementMeContacter.php"> <fieldset> <legend>Identité</legend> <table> <tr> <td><label>Civilité: </label></td> <td><input type="radio" name="Civilite" value="Mme" required/>Mme <input type="radio" name="Civilite" value="Mlle" required/>Mlle <input type="radio" name="Civilite" value="Mr" required/>Mr</td> </tr> <tr> <td><label>Nom:</label></td> <td><input type="text" name="Nom" size="30" placeholder="DUPONT" required/></td> </tr> <tr> <td><label>Prénom:</label></td> <td><input type="text" name="Prenom" size="30" placeholder="Manon" required/></td> </tr> </table> </fieldset> <br> <fieldset> <legend>Contacts</legend> <table> <tr> <td><label>Adresse E-Mail:</label></td> <td><input type="text" name="Email" size="30" placeholder="manon.dupont@gmail.com" required/></td> </tr> <tr> <td><label>Téléphone:</label></td> <td><input type="text" name="Telephone" size="30" placeholder="06.07.08.09.10"/></td> </tr> </table> </fieldset> <br> <fieldset> <legend>Message:</legend> <textarea name="Msg" rows="5" cols="100" required></textarea> </fieldset> <p id="buttons"> <input type="submit" value="Envoyer" /> <input type="reset" value="Effacer" /> </p> </form>
EDIT: déplacé en JS par modo mais ce que j'aimerai c'est bien modifier ma fonction PHP please![]()
Partager