php表单适用于一个网站但不适用于另一个网站

时间:2017-08-22 09:32:20

标签: php wordpress

我使用相同的联系表格已经有一段时间了:

<?php
if (isset($_POST['submit']) ) {
    $name = $_POST['names'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $robot = $_POST['robot'];
    $from = 'online@domain.co.uk'; 
    $to = 'info@domain.co.uk'; 
    $subject = 'Online Enquiry';
    $headers = "From: DOMAIN <no-reply@domain.co.uk> \r\n";
    $headers .= 'Reply-To:'. $email . "\r\n";
    $headers .= "X-Mailer: PHP/" . phpversion(); // Sender's Email

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";
} ?>
<?php if (isset($_POST['submit'])) {
if ($name != '' && $email != '' && $message !='') {
    if ($robot != 'yes') {               
        if (mail ($to, $subject, $body, $headers)) { 
            echo '<p class="approved"><strong>Your message has been submitted</strong></p>';
        } else { 
            echo '<p class="warning"><strong>Something went wrong!</strong></p>'; 
        } 
    } else if ($_POST['submit'] && $robot == 'yes') {
        echo '<p class="warning"><strong>Looks like you are spam!</strong></p>';
    }
} else {
    echo '<p class="warning"><strong>Please complete all fields.</strong></p>';
    }
} 
?>
    <form id="contact" method="post" action="#contact">

    <label>Name</label>
    <input name="names" type="text" placeholder="NAME">

    <label>Email</label>
    <input name="email" type="email" placeholder="EMAIL">

    <label>Message</label>
    <textarea rows="10" name="message" placeholder="MESSAGE"></textarea>
    <input id="capture" name="robot" type="checkbox" value="yes">        
    <input id="submit" name="submit" type="submit" value="Submit">

</form>

它在其他网站上工作得很好,但在一个域上不起作用?提交只是返回错误“出了问题!”。该网站与许多其他工作正常的网站位于同一个云服务器上。这让我很生气,因为我看不出错误。

打开调试我收到错误: 注意:未定义的索引:第6行的/form-contact.php中的机器人

我曾尝试一起删除机器人检查但它仍然不起作用,但在调试时没有产生错误?

有人可以提供任何建议吗?

2 个答案:

答案 0 :(得分:0)

如果未选中复选框,则不会发送。 取代

$robot = $_POST['robot'];

$robot = isset($_POST['robot']) ? 'yes' : 'no';

答案 1 :(得分:0)

您的条件符合案例。尝试在提交时检查$ robot的值。

<input id="capture" name="robot" type="checkbox" value="yes">  

if ($robot != 'yes') {               
        if (mail ($to, $subject, $body, $headers)) { 
        echo '<p class="approved"><strong>Your message has been submitted</strong></p>';
    } else { 
        echo '<p class="warning"><strong>Something went wrong!</strong></p>'; 
    }