1

这是代码:

if($rowCheck>0) {
  session_start();

  while($row = mysql_fetch_assoc($check)) {
    $_SESSION['developer'] = $row;          
  }

  header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
}
else
    echo 'Invalid Password or Email!';  

除了 之外,一切都工作正常header,如果我在echo之后写一个,header它将正常工作。此外,如果我打印了location,它会告诉我正确和正确的location

我在 mamp 和 macos 上运行。所以它在本地主机上。

有什么帮助吗?

4

4 回答 4

1

正如斯科特所说,您需要在标题之后使用 exit() 或 die() 。

另外,检查您的打开和关闭 php 标签之前或之后是否没有空格,如下所示:

   <?php

这将导致标头函数失败,因为它被视为输入。还应检查任何相关的包含文件。

于 2012-05-30T21:39:34.090 回答
0

在标题行之后添加 exit() 或 die()。标头函数不会停止脚本其余部分的执行。

于 2012-05-30T19:08:50.507 回答
0

夫妇的事情。

首先,我会将ini_set("display_errors", 1);PHP 代码放在您页面的最顶部。您可能会收到“标头已发送”错误。

在标头后添加退出以防止脚本继续执行:

header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
exit;

最后,这一点没有意义。

  while($row = mysql_fetch_assoc($check)) {
    $_SESSION['developer'] = $row;          
  }

您正在设置该会话变量一次,因此您不需要 while。您还将它设置为等于 mysql 资源(您可能打算这样做),但也许您只需要一个列

$row = mysql_fetch_assoc($check);
$_SESSION['developer'] = $row['username']; 
于 2012-05-30T23:30:47.577 回答
0

只需评论所有内容并粘贴在正确的开头header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");,看看它是否有效。如果不是,请检查 BOM 编码。

于 2012-05-30T18:11:26.373 回答