Vérification champs vide - PHP - Programmation
Marsh Posté le 30-10-2011 à 13:32:13
Bonjour,
Le principe est de tester si les variables de type POST que tu reçois (nom, prénom, téléphone...) ne sont pas vide. Pour se faire, on utilise soit la fonction "empty" ou on regarde si la variable est différente de "rien" :
if (empty($_POST['nom']))
echo 'Champ vide';
if ($_POST['nom'] == '')
echo 'Champ vide';
Marsh Posté le 30-10-2011 à 14:15:21
OK ok, mais je ne vois pas ou mettre cela, ni comment le formuler...
Mais ce que ne je comprend pas dans mon code, ce sont ces 2 parties la:
// 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é
if (($nom != '') && ($email != '') && ($adresse != '') && ($telephone != '') && ($prenom != '') && ($paiement != '') && ($modele != '') && ($prix != ''))
{
// les variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$email.'' . "\r\n";
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
// Envoi du mail
if (mail($cible, 'Nouvelle Commande', $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.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>
Marsh Posté le 30-10-2011 à 12:12:10
Bonjour,
Je m'adresse a vous ajd car j'ai un soucis avec un formulaire que j'ai fais en partant d'un gabarit trouvé sur google. (Car je suis débutant et je ne connais pas le php)
Le soucis c'est que la vérification des champs vides ne fonctionne pas.
Lorsque je click sur envoyer alors que je ne remplis rien, il m'envois sur la page de remerciement, mais je ne recois pas l'email.
Or ce que je souhaiterai, c'est qu'une fenetre apparaisse en disant: Veuillez mettre un ... (nom ou prénom ou adresse ou telephone ou email)
Je vous colle le .php
Si vous arrivez a trouver l'erreur, je vous en serai toujours reconnaissant lol
Merci d'avance.
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'contacte@airsoftexperience.be';
// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'
// Messages de confirmation du mail
header('Location: http://www.airsoftexperience.be/merci.html');
// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord envoyer le formulaire.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* 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;
};
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : '';
$telephone = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$paiement = (isset($_POST['paiement'])) ? Rec($_POST['paiement']) : '';
$modele = (isset($_POST['modele'])) ? Rec($_POST['modele']) : '';
$prix = (isset($_POST['prix'])) ? Rec($_POST['prix']) : '';
// 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é
if (($nom != '') && ($email != '') && ($adresse != '') && ($telephone != '') && ($prenom != '') && ($paiement != '') && ($modele != '') && ($prix != ''))
{
// les variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$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 = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
$message = str_replace("é","é",$message);
$message = str_replace("è","è",$message);
$message = str_replace("€","€",$message);
$message = 'Nom : '.$nom."\r\n\r\n";
$message .= 'Prénom : '.$prenom."\r\n\r\n";
$message .= 'Adresse : '.$adresse."\r\n\r\n";
$message .= 'Téléphone : '.$telephone."\r\n\r\n";
$message .= 'Modèle : '.$modele."\r\n\r\n";
$message .= 'Prix : '.$prix."\r\n\r\n";
$message .= 'Type De Paiement : '.$paiement."\r\n";
// Envoi du mail
if (mail($cible, 'Nouvelle Commande', $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.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>