Rendre champs de saisi obligatoires
Utilisateur anonyme
-
avion-f16 Messages postés 20368 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 20368 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Savez vous comment faire pour que les champs "NOM" "EMAIL" et "OBJET" "MESSAGE" soient obligatoire à la saisie ? Si quelqu'un pourrait me donner le code en ajoutant cette fonction ca serai top comme ca je peux le copier coller directement
Merci d'avance
Voici le code :
<?php
if (isset($_POST['nom']))
{
$nom = $_POST["nom"];
$email = $_POST["email"];
$objet = $_POST["objet"];
$message = $_POST["message"];
$myFile = "demandes.txt";
$fh = fopen($myFile, 'a+') or die("can't open file");
$stringData = " Nom :".$nom.
" ;Email :".$email.
" ;Objet : ".$objet.
" ;Message :".$message.
" ;Ip :".$_SERVER['REMOTE_ADDR'].
" ;Date :".date("F j, Y, g:i a")."\n";
fwrite($fh, $stringData);
fclose($fh);
//for email notification
$Name = "xxxxxxxx formulaire"; //senders name
$email = "no-reply@XXXXXXX"; //senders e-mail adress
$recipient = "contact@XXXXXXXXXX"; //recipient
$mail_body = $stringData;
$subject = "Contact MonIxxxx"; //subject
$header = "From: ". $nom . " <" . $email . ">\r\n"; //optional headerfields
mail($recipient, $subject, $mail_body, $header); //mail command
$message="Votre message a bien été envoyé. Nous y répondrons dès que possible";
}
?>
Savez vous comment faire pour que les champs "NOM" "EMAIL" et "OBJET" "MESSAGE" soient obligatoire à la saisie ? Si quelqu'un pourrait me donner le code en ajoutant cette fonction ca serai top comme ca je peux le copier coller directement
Merci d'avance
Voici le code :
<?php
if (isset($_POST['nom']))
{
$nom = $_POST["nom"];
$email = $_POST["email"];
$objet = $_POST["objet"];
$message = $_POST["message"];
$myFile = "demandes.txt";
$fh = fopen($myFile, 'a+') or die("can't open file");
$stringData = " Nom :".$nom.
" ;Email :".$email.
" ;Objet : ".$objet.
" ;Message :".$message.
" ;Ip :".$_SERVER['REMOTE_ADDR'].
" ;Date :".date("F j, Y, g:i a")."\n";
fwrite($fh, $stringData);
fclose($fh);
//for email notification
$Name = "xxxxxxxx formulaire"; //senders name
$email = "no-reply@XXXXXXX"; //senders e-mail adress
$recipient = "contact@XXXXXXXXXX"; //recipient
$mail_body = $stringData;
$subject = "Contact MonIxxxx"; //subject
$header = "From: ". $nom . " <" . $email . ">\r\n"; //optional headerfields
mail($recipient, $subject, $mail_body, $header); //mail command
$message="Votre message a bien été envoyé. Nous y répondrons dès que possible";
}
?>
A voir également:
- Rendre champs de saisi obligatoires
- Comment rendre un fichier moins lourd - Guide
- Une erreur pouvant rendre powerpoint instable s'est produite ✓ - Forum Powerpoint
- Ping instable - Forum WiFi
- Rendre une image transparente ✓ - Forum LibreOffice / OpenOffice
- Comment nettoyer son mac pour le rendre plus rapide - Guide
2 réponses
Salut.
En plus de la réponse de notobe, utilise aussi la fonction trim() afin de retirer les espaces en début et fin de chaine, sinon il suffira de mettre un espace et empty() retournera false.
Pour la vérification du formulaire, je te propose de créer deux variables : $nbErreurs et $msgErreurs. Il suffira d'incrémenter $nbErreurs et d'ajouter du texte à $msgErreurs à chaque erreur.
Exemple avec un simple formulaire (Nom, email et message) :
En plus de la réponse de notobe, utilise aussi la fonction trim() afin de retirer les espaces en début et fin de chaine, sinon il suffira de mettre un espace et empty() retournera false.
Pour la vérification du formulaire, je te propose de créer deux variables : $nbErreurs et $msgErreurs. Il suffira d'incrémenter $nbErreurs et d'ajouter du texte à $msgErreurs à chaque erreur.
Exemple avec un simple formulaire (Nom, email et message) :
<?php
$emailSyntaxPattern = "#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i";
if(isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['msg'])) {
$msgErreurs = '';
$nbErreurs = 0;
$nom = trim($_POST['nom']);
$email = trim($_POST['email']);
$msg = trim($_POST['msg']);
if(empty($nom)) {
$nbErreurs++;
$msgErreurs .= 'Le champ « Nom » est vide<br/>';
}
if(!preg_match($emailSyntaxPattern, $email)) {
$nbErrreurs++;
$msgErreurs .= 'La syntaxe de l\'adresse email est invalide<br/>';
}
if(empty($msg)) {
$nbErreurs++;
$msgErreurs .= 'Le champ « Message » est vide';
}
if($nbErreurs > 0) {
include 'views/contact/error.php';
} else {
// Envoie du formulaire par email
include 'views/contact/success.php';
}
} else {
include 'views/contact/form.php';
}
?>Dans /views/contact/error.php, tu pourras utiliser les deux variables pour le message d'erreur.