【问题标题】:PhP Contact form shows a blank pagePhP 联系表显示空白页
【发布时间】:2016-03-16 16:10:59
【问题描述】:
    <?php
if( isset($_POST['name']) )
{
    $to = 'email@email.com';

    $subject = $_POST['subject'];
    $message = $_POST['message'] . "\n\n" . 'Regards, ' . $_POST['name'] . '.';
    $headers = 'From: ' . $_POST['name'] . "\r\n" . 'Reply-To: ' . $_POST['email'] . "\r\n" . 'X-Mailer: PHP/' . phpversion();

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

    if( $_POST['copy'] == 'on' )
    {
        mail($_POST['email@email.com'], $subject, $message, $headers);
    }
}
?>

当我在我的联系表格上单击“发送”时,它会转到一个空白页面,但是我确实收到了电子邮件。怎么了?

非常感谢。

卡尔

网站

http://www.vrijeme-reklame.net

联系表格空白页

http://www.vrijeme-reklame.net/demo-contacts.php

错误信息:

[2016 年 3 月 16 日星期三 15:58:34.846118] [lsapi:error] [pid 220778] [client 94.253.149.34:56523] mod_lsapi: [host www.vrijeme-reklame.net] [req POST /demo-contacts .php HTTP/1.1]: 无法统计脚本文件名 (/home/vrijemer/public_html/demo-contacts.php): errno 2, referer: http://www.vrijeme-reklame.net/

【问题讨论】:

  • 空白页通常意味着未报告的错误。开启报错、查看日志等
  • 谢谢你,@David。这意味着什么? [2016 年 3 月 16 日星期三 15:58:34.846118] [lsapi:error] [pid 220778] [client 94.253.149.34:56523] mod_lsapi: [host www.vrijeme-reklame.net] [req POST /demo-contacts.php HTTP /1.1]: 无法统计脚本文件名 (/home/vrijemer/public_html/demo-contacts.php): errno 2, referer: vrijeme-reklame.net
  • 此页面不输出任何内容。没有 echoprint 或 PHP 块之外的内容。寄出空白页后,我希望。
  • 以上代码片段属于demo-contacts.php ?
  • $_POST['email@email.com'] 你确定你有一个字段 name="email@email.com" 吗?

标签: php string html forms contact


【解决方案1】:

问题是您的demo-contact.php 不打印任何内容。 尝试添加一些echo 语句,它不会显示空白页。而是会打印那些回显语句。

您可以做的其他事情是,尝试随时重定向到某个指定的 url。 header('Location: http://www.vrijeme-reklame.net/#contact');

【讨论】:

  • 谢谢伙计。必须弄清楚添加一个“您的消息已发送”。但点击发送后,它会立即重定向回联系人。
  • 不要重定向 demo-contact.php 并重定向回主页。为此目的使用ajax。它会在没有刷新/重定向的情况下向 demo-contact.php 发送请求。并且从 ajax 成功响应后,您可以显示警报““您的消息已发送”。
【解决方案2】:

你的 html 页面会重定向到这个 php 页面,然后它会根据你编写的代码处理你的数据,但是 php 代码不会直接显示在页面上,类似于 javascript。如果您希望此页面显示信息,请在您的 php 中使用 echo,或创建 html 标记并将 html 放入其中。或者,如果您不希望重定向到此页面,而只是让您的 php 页面处理代码,同时保留在带有表单、google 和我们 jquery 和 $.ajax 的页面上

【讨论】:

  • 谢谢。它会重定向回联系页面,但在我对其进行排序之前,暂时不会显示“您的消息已发送”。
  • 如果您只是要重定向回将您发送到 php 页面的页面,我强烈建议您使用 ajax,那么您可以将您的代码让人们知道他们的消息已发送到成功:回调。