PHP登录表单问题

时间:2011-07-27 10:53:55

标签: php forms login

我在另一台服务器上创建了一个登录表单,它工作得很好,现在我将它转移到另一台服务器上,并且我遇到了很多新的错误:

警告:无法修改标题信息 - 已在第55行的/home/davethom/public_html/login.php中发送的输出(/home/davethom/public_html/login.php:16中的输出)

但实际的登录工作只是出现了这条消息,可能只是我愚蠢而且遗漏了一些东西,

www.scottechtrio.co.cc/login.html用户名:1​​密码:1

4 个答案:

答案 0 :(得分:4)

在开始发送一些输出后,您可能正在调用header()函数或其他发送标题的函数,如setcookie()

在将任何输出发送到浏览器之前,必须调用这些函数:

  • 在完成任何echo / print之前,
  • <?php ... ?>标记之外的任何字符(包括空格)之前

答案 1 :(得分:1)

检查代码中的空格。删除php页面末尾的php结束标记(如果有的话)。

答案 2 :(得分:0)

  1. 我认为您需要关闭php.ini文件中的display_errors指令。
  2. 如果您无法编辑php.ini文件,请在所有php文件之上调用以下函数。

    ini_set('display_errors','Off');

  3. 您还可以使用以下内容在应用程序的webroot中使用.htaccess文件。

    php_flag   display_errors       Off
    

答案 3 :(得分:0)

您不应该只关闭错误报告;你应该修改你的代码,这样就不会导致任何错误。

如Pascal MARTIN所述,当您在已经将输出发送到浏览器之后调用发送HTTP标头的函数时,会发生此错误。 session_start()发送一个cookie头,所以在输出任何内容之前需要调用它(如header()和setcookie())。检查/home/davethom/public_html/login.php中的第55行以查找有问题的功能,并确保在调用之前没有内容发送到浏览器。

页面内容是发送给浏览器以呈现给用户的任何内容。这可能是你的开头标签(或)甚至是一些错误的空格,偶然输出到某处。查找echo或print语句,或者不在一组分隔符内的任何内容(即使这里只有新的行或空格也会有问题)。

作为调试辅助工具:要准确找出发生此错误时发送到浏览器的内容,请将die();紧接在第55行之后,访问浏览器中的页面,然后使用浏览器查看到目前为止从服务器收到的来源。

有关在内容后错误发送标头的详细信息,请参阅http://uk.php.net/manual/en/function.header.php