HTML联系表单无法识别php文件

时间:2016-11-28 07:58:19

标签: php html css html5 css3

------自第一次发布以来,该守则已被修改------

对于我的生活,我无法让它发挥作用。下面提到的页面将无法识别根主题文件夹中的email.php文件。我已经尝试了一切!

目的:用户提交详细信息的HTML联系表单,PHP脚本会收集用户的名字,姓氏和电子邮件地址,然后将其重定向到感谢页面。

问题:HTML联系表单显示正常,但是当我点击“好的时候,给我发送优惠券代码!”它提供了网址:http://charliesonlinestore.com/free-delivery-coupon-page/email.php,其中“找不到任何内容”,应该重定向到感谢页面。

以下是HTML中的表单代码:

<div class="form">

<form method="post" name="landing-page" action="<?php echo get_template_directory_uri(); ?>/email.php">

First Name<br>
<input type="text" name="first_name"><br><br>

Last Name<br>
<input type="text" name="last_name"><br><br>

Email Address<br>
<input type="text" name="email"><br><br>

<input type="submit" name="submit" value="Okay, send me a voucher code!">

</form>

</div>

这是我的PHP脚本代码:

<?php
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email_from = $_POST['email'];
$to = 'charlie@charliesonlinestore.com';
$body = 'Here your email body text';
$subject = 'NEW Subscriber';
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'From: Lead Generator <Charlie@charliesonlinestore.com>' .
"\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

if($_POST['submit']){
    if(mail($to, $subject, $headers)){
         echo "mail send"; // change this later to your header location
    }
    else{
        echo 'error sending mail';
    }
}
else{
    echo 'no post data';
}
?>

确认点:

  • email.php位于主题文件夹店面的根目录中。

  • 示例中的所有项目都在根文件夹店面中提供。

  • 当我在本地主机(单独的服务器)上测试它时,它工作正常并重定向没有问题。

如果您对此为何发生任何想法,那么我将非常感激。我几乎完成了我自己定制的联系表单,潜在客户生成和感谢页面!

请注意,我已经检查过以前的帖子并尝试了诸如放置PHP文件名前面的'/'之类的东西,并尝试将文件服务器地址置于文件名前面,但无济于事。

请帮忙!

1 个答案:

答案 0 :(得分:1)

在我看到之前花了一点时间。问题是你的邮件功能。 php邮件功能在标头之前需要一条消息。你替换你的$ header变量而不是扩展它。

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $to = 'charlie@charliesonlinestore.com';
    $body = 'Here your email body text';
    $subject = 'NEW Subscriber';
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'From: Your name <Charlie@charliesonlinestore.com>' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    if($_POST['submit']){
        if(mail($to, $subject, $body, $headers)){
             echo "mail send"; // change this later to your header location
        }
        else{
            echo 'error sending mail';
        }
    }
    else{
        echo 'no post data';
    }
?>