php脚本不会在浏览器中刷新

时间:2010-08-12 18:04:29

标签: php session

我有以下php代码:

<?php session_start();
....
$result=$db->query($query);
$row=$result->fetch_assoc();
$_SESSION['id']=$row['id'];
header('Location: http://www.blabla.com/successLoginPage.php');

php代码:successLoginPage.php

<?php session_start();
echo $_SESSION['id'];

这是问题所在。当我做所有的事情时,我在successLoginPage.php中看不到任何内容,大约10分钟后我刷新页面并看到正确的变量。我试图清除缓存,ctrl + f5,关闭浏览器和计算机,但没有任何变化 - 仍需要等待10分钟。 chrome和ie8中存在此问题。

我该如何解决这个问题?

提前致谢。

*编辑1:

我使用以下代码添加logout.php页面:session_start(); session_destroy(); unset($ _ SESSION);当我成功登录并收到正确的回音时,我按下注销链接,然后使用其他帐户登录 - 一切都很棒。 第一个问题 - 我可以第一次通过第一个帐户登录,第二次通过第二个帐户登录吗?这个可以吗? 第二个问题 - 当我无法登录时,我再次看到冻结。如果我在此之后尝试使用正确的帐户登录,我将看到有关失败登录的旧信息。我需要做什么?

4 个答案:

答案 0 :(得分:1)

可能有些明显,但是...... $ row ['id']实际上是一个数字/字符串,而不是NULL? :p你可以尝试

var_dump($_SESSION['id']);

而不是

echo $_SESSION['id'];

答案 1 :(得分:0)

你试过吗? session_write_close(); 设置会话变量后?

答案 2 :(得分:0)

首先,您没有显示整个代码,在这种情况下,它非常重要。

<?php session_start();
....
$result=$db->query($query);
$row=$result->fetch_assoc();
$_SESSION['id']=$row['id'];
header('Location: http://www.blabla.com/successLoginPage.php');
// Mystery ???

当您调用标题('Location:xxx')时,它不会停止脚本,因此标题后面的所有内容都会被执行。

您可以添加函数die以防止在重定向后执行任何其他代码。

<?php session_start();
....
$result=$db->query($query);
$row=$result->fetch_assoc();
$_SESSION['id']=$row['id'];
header('Location: http://www.blabla.com/successLoginPage.php');
die(); // No more code executed after this //

答案 3 :(得分:0)

解决了这个问题。 我删除了所有登录文件并从头开始重写它们现在似乎全部工作了。不知道bug在哪里。