【发布时间】:2016-11-28 07:58:18
【问题描述】:
-----自第一次发布以来,代码已被修改-----
为了我的一生,我无法让它发挥作用。下面提到的页面将无法识别根主题文件夹中的 email.php 文件。我什么都试过了!
目的:用户提交详细信息的 HTML 联系表,PHP 脚本收集用户的名字、姓氏和电子邮件地址,然后将他们重定向到感谢页面。
问题:HTML 联系表单显示正常,但是当我点击“好的,给我发送优惠券代码!”时它提供了 URL: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 位于主题文件夹 storefront 的根目录中。
示例中的所有项目都在根文件夹 storefront 中提供。
当我在本地主机(单独的服务器)上测试它时,它工作正常并且重定向没有问题。
如果您对为什么会发生这种情况有任何想法,那么我将不胜感激。我几乎已经完成了我自己的定制联系表格、潜在客户生成和感谢页面!
请注意,我检查了以前的帖子并尝试了诸如在 PHP 文件名前放置“/”之类的方法,还尝试将文件服务器地址放在文件名前,但无济于事。
请帮忙!
【问题讨论】:
-
仅供参考,您在
if (mail ($to, $subject, $headers))之后缺少大括号{},因此您的退出在提交时一直被触发。 -
@AlainTiemblo 谢谢你的帖子。在 if ($_POST['submit']) { 和 header('Location: page-thankyou.php'); 之后我确实有括号。出口; } 为什么不这样做呢?
-
您的表单中还有 2 个
name字段。但这仍然不是问题。 -
如果您的 html 文件在
/文件夹中并且 email.php 在/theme文件夹中,您可以尝试将您的操作定位到theme/email.php... -
将结果更改为
if(mail ($to, $subject, $headers)){ echo "mail send"; } else{ echo "error sending mail";}之类的输出然后您查看脚本是否正常工作。可能存在电子邮件发送错误。而且,email.php 的 url 是什么。http://charliesonlinestore.com/wp-content/themes/storefront/email.php是此时发送的 url。对吗?