2014-06-23 4 views
-4

J'ai un script php pour la capture d'un nom et d'une adresse e-mail pour une liste de diffusion. Dans la mesure du possible, quelqu'un peut-il donner des conseils sur la façon de créer les champs de courriel et de nom au besoin, de sorte que l'utilisateur soit obligé de saisir son nom et son adresse de courriel dans les champs du formulaire.Rendre un champ email obligatoire dans php

Encore une fois beaucoup apprécié pour toute aide !!

Ce qui suit est le code php utilisé pour la forme

<?php 
$sendTo = "[email protected]"; 
$subject = "website email enquiry"; 

$headers = "From: " . $_POST["firstName"] ." ". $_POST["lastname"] . "<" . $_POST["email"] .">\r\n"; 
$headers .= "Reply-To: " . $_POST["email"] . "\r\n"; 
$headers .= "Return-path: " . $_POST["email"]; 
$message = $_POST["message"]; 
mail($sendTo, $subject, $message, $headers); 
?> 
+0

Juste besoin de valider si les champs sont 'vides 'ou non. Si les champs sont vides, redirigez-les vers la même page. – Sal00m

+0

'si (vide ($ _ POST ['email'])) ...' – deceze

+0

merci beaucoup pour la réponse! Comment puis-je valider les champs? Désolé Im vraiment nouveau à php – aslazak87

Répondre

0
if(filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) { 
    //Your code 
} else { 
    //Show your errors 
} 

Le code ci-dessus validera le contenu de votre variable de poste électronique à une adresse e-mail valide.

+0

merci beaucoup et désolé où pourrais-je ajouter ce code parmi le php de mon formulaire? – aslazak87

1

Vous devez vérifier les valeurs de $_POST['firstname'], $_POST['lastname'] et $_POST['email']

Pour le nom, vous pouvez vérifier avec:

empty()

if (empty($_POST['firstname']) || empty($_POST['lastname'])) 
    // catch error 

Vous pouvez également utiliser strlen() et trim() pour vérifier la taille de la chaîne et ne pas valider un nom avec seulement une longueur de caractère.

Pour e-mail, vous pouvez vérifier avec:

filter validate

if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) 
    // catch error 
-1

Vous ne devez pas le faire en PHP plus. Dans votre formulaire où vous avez votre courrier électronique/textbox, insérez simplement requis et tapez comme email alors le formulaire ne sera pas soumis à moins que ce remplissage contienne une adresse e-mail valide.

<input type="email" name="email" id="email" required value="<? echo $email; ?>" placeholder="[email protected]"/> 

Cela devrait faire l'affaire. HTML5 bébé!

+1

Le problème avec cela à mon avis est que ce n'est pas la validation côté serveur, ce qui signifie que je peux utiliser mon outil firebug ou chrome développeur pour supprimer la partie requise du formulaire, et je serai toujours en mesure de poster –

+0

droite! J'ai répondu à nouveau avec une solution PHP. –

0

Voici la meilleure façon de le faire en PHP.

<?php 
if(isset($_POST["email"])){ 
//Perform action 
} 
else{ 
echo "Please type in your email"; 
} 
?>` 

Cela devrait faire l'affaire.

Questions connexes