------自第一次发布以来,该守则已被修改------
对于我的生活,我无法让它发挥作用。下面提到的页面将无法识别根主题文件夹中的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文件名前面的'/'之类的东西,并尝试将文件服务器地址置于文件名前面,但无济于事。
请帮忙!
答案 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';
}
?>