【问题标题】:PHP form not redirecting, going to form postPHP表单没有重定向,要表单发布
【发布时间】:2016-08-31 21:25:36
【问题描述】:

我使用下面的联系表格。当我在本地机器上运行它时,它正在工作。但是在我的服务器上,如果表单失败,它会做正确的事情并转到fail.php,但是当所有字段都填满后,它会在单击发送而不是success.php后转到send_contact2.php

这是 send_contact2.php

if (empty($_POST['name'])
    || empty($_POST['number'])
    || empty($_POST['email'])
    || empty($_POST['messagearea'])
){
    header('Location: fail.php');
}

else {

    $name = $_POST['name'];
    $number = $_POST['number'];
    $email = $_POST['email'];
    $messagearea = $_POST['messagearea'];

    $to = 'example@gmail.com';
    $subject = "Website Message: Contact form";
    $message = '$messagearea';
    $headers = "From: WebsiteMessage";

    mail($to, $subject, $message, $headers);

    header("Location: success.php");

}
?>

这是我的表格

<form name="form1" method="post" action="send_contact2.php">
    <input name="name" type="text" placeholder="Your Name"/> <br/>
    <input name="email" type="email" placeholder="Your Email"/> <br/>
    <input name="number" type="tel" placeholder="Your Number"/> <br />
    <textarea name="messagearea" cols="" rows="" id="messagearea" placeholder="Your Message"/></textarea> <br/>

    <input name="sumbit" type="submit" value="SEND" id="button2" />
</form>

我的 cPanel 中有这个设置

任何帮助将不胜感激

【问题讨论】:

  • 检查您的错误日志是否有任何错误...当表单提交继续进行时是否正在发送电子邮件?
  • 如果未发送电子邮件,您确定脚本是否已经到达 else 块?尝试放置 die('QA');在 else 块中,然后成功提交表单并查看字符串 QA 是否在屏幕上输出
  • 你把它放在哪里了?在 mail() 函数之上还是之下?如果在上面,请尝试将其放在 mail() 函数的正下方,如果 QA 未输出,则 mail() 肯定失败
  • '$messagearea' 无论如何都是错误的,即使电子邮件正在发送。 '-quoted 字符串不插入变量。
  • @luke_mclachlan 我会的,但不能解决 mail() 问题

标签: php forms contact-form


【解决方案1】:

如果页面停留在 send_contact2.php 上,那是因为 header("Location:success.php") 没有重定向。阅读这篇文章,它可能会有所帮助。 Php header location redirect not working

【讨论】:

    【解决方案2】:

    在我看来 PHP 必须输出一些文本(字符、错误或警告?),或者您在 send_contact2.php 文件中在 &lt;?php 之前使用了一个字符。这就是标题不起作用的原因。请记住,必须在发送任何实际输出之前调用 header()。

    【讨论】:

    • 是我的邮件服务器主机上的一个 php 设置,当我被允许时,我会把它作为答案。干杯吧
    【解决方案3】:

    这里是OP,最后还是整理好了

    是邮件服务器问题,因此如果将来有人遇到此问题,请检查您主机上的 php 设置并确保它允许 mail() 并确保您设置了发送电子邮件的电子邮件地址在您的服务器上。

    感谢所有帮助我调试的人

    【讨论】:

      猜你喜欢
      • 2015-12-25
      • 2012-08-19
      • 2013-10-11
      • 2015-12-05
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      相关资源
      最近更新 更多