【问题标题】:PHP - SQLite Issue: Cannot modify header information - headers already sent byPHP - SQLite 问题:无法修改标头信息 - 标头已由
【发布时间】:2014-05-24 11:48:04
【问题描述】:

我花了太多时间试图解决这个问题。到目前为止,我发现的所有修复都没有奏效。非常感谢任何帮助。

当我在检查登录信息后尝试重定向到新页面时会出现此问题。这是我在按下登录按钮后运行的代码:

<?php
  ob_start();
  session_start();
  $database = new SQLite3('newdb.db');
  $fname=$_POST['fname'];
  $lname=$_POST['lname'];

  $sql = "SELECT * FROM guests WHERE fname = '$fname' and lname = '$lname'";
  $result= $database->query($sql);
  $row = $result->fetchArray();
  if (!empty($row)){
      header ("Location: home.php");
      die();
  }
  else {echo "NOPE";}
  $database->close();
?>
<?php ob_flush(); ?>

如您所见,我尝试添加 ob_start/flush,但没有帮助。我还检查了额外的空白,并尝试了多种编写标头代码的方法。没有任何效果。

我假设我忽略了一些东西。 任何帮助将不胜感激。

还可能值得一提的是,错误消息说它来自我的第 1 行的 check.php 页面。虽然那里似乎什么都没有。

【问题讨论】:

  • 第一个&lt;?php之前有空格什么的吗?
  • 似乎什么都没有,但错误消息告诉我问题出在第一行。我已经在几个编辑器中打开了文件……什么都没有。
  • 为了让您稍后调试,您是否考虑过使用“输出缓冲”? outcontrol.configuration.php)
  • 这很可能是一个字节顺序标记:检查您使用的编码;如果是“UTF8 with BOM”或类似的,将其更改为“UTF8”。
  • 文件被编码为utf8,所以我认为不是BOM的原因。关于输出缓冲,我认为这就是我对 ob_start(); 所做的。在我的代码顶部。

标签: php html database sqlite login


【解决方案1】:

获取页面的源视图,查看顶部并确保 没有空行存在。如果出现空行,那么 删除它,然后重试。

【讨论】:

  • 我怎样才能编辑这段代码?还可能值得一提的是,错误消息说它来自我的第 1 行的 check.php 页面。虽然那里似乎什么都没有。
猜你喜欢
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 2011-11-14
  • 2013-10-03
  • 2013-07-09
  • 2019-10-08
  • 1970-01-01
相关资源
最近更新 更多