将PHP联系表单错误作为随机输出发送

HTML

<div id="formwrap">
    <form method="post" id="submitform" action="submitemail.php" >
        <input type="text" class="formstyle" title="Name" name="name" />
        <input type="text" class="formstyle" title="Email" name="email" />
        <textarea name="message" title="Message"></textarea>
        <input class="formstyletwo" type="submit" value="Send">  
    </form>

PHP

<?php
    $mailto = "abcd@gmail.com"; /*PUT YOUR EMAIL IN HERE*/
    $cc = "";
    $bcc = "";
    $subject = "enquiry";
    $vname = "Website Contact Form";
    $email = $_POST['email'];
    function validateEmail($email){
        if(eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-zA-Z]{2,4}(.[a-zA-Z]{2,3})?(.[a-zA-Z]{2,3})?$', $email)) return true;
        else return false;
    }
    if(strlen($_POST['name']) < 1  || strlen($_POST['message']) < 1 || validateEmail($email) == FALSE){
        if(empty($_POST['name'])){
            $emailerror .= '<li>Enter name</li>';
        }
        if(validateEmail($email) == FALSE){
            $emailerror .= '<li>Enter valid email</li>';
        }
        if(empty($_POST['message'])){
            $emailerror .= '<li>Enter message</li>';
        }
    }
    else{
        $emailerror .= "Your email has been sent successfully";
        // NOW SEND THE ENQUIRY
        $timestamp = date("F j, Y, g:ia");
        $messageproper ="nn" .
            "Name: " .ucwords($_POST['name']) ."n" .
            "Email: " .ucwords($email) ."n" .
            "Comments: " .$_POST['message'] ."n" .
            "nn" ;
            $messageproper = trim(stripslashes($messageproper));
            mail($mailto, $subject, $messageproper, "From: "$vname" <".$_POST['e_mail'].">nReply-To: "".ucwords($_POST['first_name'])."" <".$_POST['e_mail'].">nX-Mailer: PHP/" . phpversion() );
    }
?>

<div id='emailerror'>
    <ul>
        <? echo $emailerror; ?>
    </ul>
</div>

在XAMPP服务器上运行它时,我在发送按钮下方以文本形式输出错误信息

错误输出显示

输入名字'; } if(validateEmail($ email)== FALSE){$ emailerror。='输入有效的电子邮件'; } if(empty($ _ POST ['message'])){$ emailerror。='输入消息'; }} else {$ emailerror。=“您的电子邮件已成功发送”; //现在发送查询$ timestamp = date(“F j,Y,g​​:ia”); $ messageproper =“ n n”。 “名称: ” 。 ucwords($ _ POST ['name'])。 “ n”。 “电子邮件:”。 ucwords($ email)。 “ n”。 “注释: ” 。 $ _POST ['message']。 “ n”。 “ n n”; $ messageproper = trim(stripslashes($ messageproper)); ($ mailto,$ subject,$ messageproper,“From:”$ vname “<”。$ _ POST ['e_mail']。“> nReply-To:”“。ucwords($ _ POST ['first_name' ])。“”<“。$ _ POST ['e_mail']。”> nX-Mailer:PHP /“。phpversion()); }?>


好,所以这应该工作

<?php
$mailto = "abcd@gmail.com"; /*PUT YOUR EMAIL IN HERE*/
$cc = "";
$bcc = "";
$subject = "enquiry";
$vname = "Website Contact Form";


$errors = array();
if($_POST){

    if(!isset($_POST['name']) || $_POST['name'] == "")
        $errors[] = "Please enter your name.";

    if(isset($_POST['email']) && $_POST['email'] != ""){
        if(!preg_match('%^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-zA-Z]{2,4}(.[a-zA-Z]{2,3})?(.[a-zA-Z]{2,3})?$%', $_POST['email']))
            $errors[] = "Not valid email";
    }else
        $errors[] = "Please enter your email";

    if(!isset($_POST['message']) || $_POST['message'] =="" ){
        $errors[] = "Please enter the message.";
    }

    if(!$errors){
        //send here your email...
        echo "email sended";
    }
}



?>
 <div id='emailerror'>
    <ul>
        <?php 
            foreach($errors as $err){
                echo "<li>$err</li>";
            }
        ?>
    </ul>
</div>

而不是使用短标签的PHP <? ?> <? ?> user <?php ?>它应该修复它。

另外请注意:从本地你不能发送电子邮件扔邮件功能和eregi功能已弃用,而不是使用preg_match

preg_match('%^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-zA-Z]{2,4}(.[a-zA-Z]{2,3})?(.[a-zA-Z]{2,3})?$%', $email)

如前所述使用完整标签。 另外你应该声明你的$ emailerror变量,然后再附加到它:

$emailerror = "";

在你的代码的开始。

链接地址: http://www.djcxy.com/p/69331.html

上一篇: Email PHP Contact Form error as random output

下一篇: Error in sending email in codeigniter