繁体   English   中英

联系方式是否

[英]This if or that if in contact form

dunno我可以再写一个关于联系表的问题,但是我会尝试的:)也许您会更快地帮助您; p

码:

<?php
 $name = $_POST['name'];
 $email = $_POST['email'];
 $message = $_POST['message'];
 $from = 'From: domain.com'; 
 $to = 'dawid@domain.com'; 
 $subject = 'Message from domain.com';

 $body = "From: $name\n E-Mail: $email\n Message:\n $message";

   if ($_POST['submit']) {
    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
        {
               echo '<p class="msg">Wrong email adress!!!</p>';
        }            

        if ($name != '' && $email != '') {               
                if (mail ($to, $subject, $body, $from)) { 
                        echo '<p class="msg">Your message has been sent!</p>';
                } else { 
                        echo '<p class="msg">Something went wrong, go back and try again!</p>'; 
                       } 
                } else {
                        echo '<p class="msg">You need to fill in all required fields!!</p>';
                       }
    }
?>  

如您所见,如果在这里,我在if语句中没有几个消息(echos)。 但是我想让它仅显示一个回显,即使联系表单中会有更多错误……这可能吗?

示例:有人将所有输入留空,然后单击“发送”-atm,他将收到有关错误电子邮件的消息,并且“ u需要填写所有必填字段”。 但是在这种操作系统情况下,我首先只想显示有关空字段的消息,然后在此之后,例如,如果有人会写一封错误的电子邮件,另外一封关于错误的电子邮件的消息:D希望您理解我的意思。 谢谢

if ($name == '' || $email == '' || $message == '') {               
 echo '<p class="msg">You need to fill in all required fields!!</p>';
}else if(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)){
 echo '<p class="msg">Wrong email adress!!!</p>';
}else if (!mail ($to, $subject, $body, $from)){
 echo '<p class="msg">Your message has not been sent!</p>';
}else{
 echo '<p class="msg">Your message has been sent!</p>';
}

制作一个错误数组,然后内爆该数组以显示完整的错误消息。

// DEFAULT
$errors = array();

// CHECK THINGS FOR ERRORS AND ADD THEM TO THE ERROR ARRAY
if ((!$name) || ($name == '')) {
    $errors[] = '* Name is required';
}

if ((!$email) || ($email == '')) {
    $errors[] = '* Email is required';
}

// ... etc. - Anything else you want caught in an error

// IF WE HAVE ERRORS, TURN THEM INTO A STRING AND PRINT THEM
if ($errors) {
    $error_message = implode('<br>', $errors);
    echo $error_message;
}

编辑:根据OP的请求,这是所要求的示例。

// CHECK THINGS FOR ERRORS AND ADD THEM TO THE ERROR ARRAY
if ((!$name) || ($name == '')) {
    $errors = '* Name is required';
}

if ((!$email) || ($email == '')) {
    $errors = '* Email is required';
}

// ... etc. - Anything else you want caught in an error

// IF WE HAVE ERRORS, PRINT THEM
if ($errors) {
    echo $error_message;
}

**注意:您可以通过使用条件语句来实现同一件事(这样做更有意义)。 只能将一个条件评估为true,因此一旦找到匹配项,就不会再进入任何其他“ elseif”语句。

if ($_POST['submit']) {

    if (!$email) {
        echo '<p class="msg">Email is required.</p>';
    }
    elseif (!$name) {
        echo '<p class="msg">Name is required.</p>';
    }
    elseif (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
        echo '<p class="msg">Wrong email adress!!!</p>';
    }
    elseif ($name != '' && $email != '') {

        if (mail ($to, $subject, $body, $from)) { 
            echo '<p class="msg">Your message has been sent!</p>';
        }
        else { 
            echo '<p class="msg">Something went wrong, go back and try again!</p>'; 
        } 
    }
    else {
        echo '<p class="msg">You need to fill in all required fields!!</p>';
    }

}

我仍然认为可以编辑此代码,因为它可以按我的意愿工作...但是不知道如何; D

<?php
 $name = $_POST['name'];
 $email = $_POST['email'];
 $message = $_POST['message'];
 $from = 'From: domain.com'; 
 $to = 'dawid@domain.com'; 
 $subject = 'Message from domain.com';

 $body = "From: $name\n E-Mail: $email\n Message:\n $message";

   if ($_POST['submit']) {
    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
        {
               echo '<p class="msg">Wrong email adress!!!</p>';
        }            

        if ($name != '' && $email != '') {               
                if (mail ($to, $subject, $body, $from)) { 
                        echo '<p class="msg">Your message has been sent!</p>';
                } else { 
                        echo '<p class="msg">Something went wrong, go back and try again!</p>'; 
                       } 
                } else {
                        echo '<p class="msg">You need to fill in all required fields!!</p>';
                       }
    }
?>                                 

也许把这个关于邮件的错误放在其他地方还是什么? 还是其他的? 帮助<3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM