J'ai créé un simple formulaire de contact en utilisant un peu de code PHP et lui a permis de donner des erreurs dans certaines circonstances, comme si un champ est vide ou le contenu du champ ne correspondent pas à certains critères. ... J'ai appliqué les critères standard pour la zone de saisie de courrier électronique (par exemple, doit contenir symbole « @ » Mais même si tous les critères corrects sont adaptés, mon PHP lance encore et erreurErreur dans les champs de saisie du formulaire de contact PHP mais je ne sais pas pourquoi
Voici le code:
<?php
if(isset($_POST['email'])){
\t // Here is the email to information
\t $email_to ="[email protected]";
\t $email_subject ="example.co.uk contact form";
\t $email_from ="Website Contact Form";
\t
\t // Error Code
\t
\t function died($error) {
\t \t echo 'Sorry, there is a problem with the form you submitted. ';
\t \t echo 'These errors appear below.<br/><br/>';
\t \t echo $error. '<br/><br/>';
\t \t echo 'Please go back and fix these errors.';
\t \t die();
\t \t }
\t \t
\t // Validation
\t
\t \t if(!isset($_POST['name']) ||
\t \t !isset($_POST['email']) ||
\t \t !isset($_POST['comments'])){
\t \t \t died('All fields must be filled out.');
\t \t \t } \t
\t \t
\t \t $name = $_POST['name'];
\t \t $email = $_POST['email'];
\t \t $comments = $_POST['comments'];
\t \t
\t \t $error_message = "";
\t \t $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]
\t \t {2,4}$/';
\t \t if(!preg_match($email_exp, $email)){
\t \t \t $error_message .= 'The Email Address you entered does not appear to be valid.';
\t \t \t }
\t \t
\t \t $string_exp = "/^[A-Za-z.'-]+$/";
\t \t if (!preg_match($string_exp, $name)){
\t \t \t $error_message .= 'The Name you entered does not appear to be valid.';
\t \t \t }
\t \t if (strlen($comments) < 2){
\t \t \t $error_message .= 'The Comments you entered do not appear to be valid.<br/>';
\t \t \t }
\t \t if (strlen($error_message) > 0){
\t \t \t died($error_message);
\t \t \t }
\t \t \t $email_message = "Form Details Below. \n\n";
\t \t \t
\t \t function clean_string($string){
\t \t $bad = array("content-type", "bcc:", "to:", "cc:", "href");
\t \t return str_replace($bad, "", $string);
\t \t }
\t \t
\t \t $email_message .= "Name:" . clean_string($name) . "\n";
\t \t $email_message .= "Email:" . clean_string($email) . "\n";
\t \t $email_message .= "Comments:" . clean_string($comments) . "\n";
\t \t
\t \t
\t \t // Create Email Headers
\t \t $headers = 'From: ' .$email_from . "\r\n". 'Reply-To:' . $email. "\r\n" .
\t \t 'X-Mailer: PHP/' . phpversion();
\t \t @mail($email_to, $email_subject, $email_message, $headers);
\t \t
?>
<html>
<!-- success message goes here-->
Thank You for contacting us, we will be in touch shortly. <br/>
Please Click <a href="contact.html">here<a/> to go back to the contact page.
</html>
<?php } ?>
quelqu'un comprend pourquoi il est toujours me donner des messages d'erreur?
Quelle erreur obtenez-vous? –
pour le débogage, veuillez supprimer le '@' de @mail ($ ema Le @ cache les erreurs qui peuvent être utiles pour le débogage –
Vous devez afficher l'erreur .. –