【问题标题】:php script don't refreshes in browserphp脚本不会在浏览器中刷新
【发布时间】:2010-08-12 18:04:29
【问题描述】:

我有以下 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);当我成功登录并收到正确的回声时,我推送注销链接,然后使用另一个帐户登录 - 一切都很好。 第一个问题 - 我可以第一次通过第一个帐户登录,第二次通过第二个帐户登录吗?这个可以吗? 第二个问题 - 当我无法登录时,我再次看到冻结。如果我在此之后尝试使用正确的帐户登录,我将看到有关登录失败的旧信息。我需要做什么?

【问题讨论】:

  • 你有没有在不同的机器上试过……这不太可能
  • 在另一台机器上工作正常。我试图理解为什么它不能在我的电脑上运行。将使用我的应用程序的人可能会遇到相同的错误
  • 您的会话后端使用什么?
  • 代码是否在不同的计算机上?如果你重启服务器会发生什么?
  • @stillstanding - “会话后端”是什么意思? @lotsoffreetime 它是网络托管。我无法重新启动服务器...或者我可以?

标签: php session


【解决方案1】:

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

var_dump($_SESSION['id']);

而不是

echo $_SESSION['id'];

【讨论】:

  • 感谢您的回复。 var_dump 显示 Null 或 string(2) "13"(它是会话的 id)。没有任何变化。
【解决方案2】:

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

【讨论】:

  • 这是不必要的。当脚本在重定向时终止时,会话将被提交。
  • ini_get('register_globals') 是什么意思;返回?
【解决方案3】:

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

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

当你调用 header('Location: xxx') 时,它不会停止脚本,所以你的 header 之后的一切都会被执行。

您可以添加函数 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 //

【讨论】:

  • 感谢您的回复。我使用了 die 的 exit() 方法 - 是一样的吗?
【解决方案4】:

解决了这个问题。 我删除了所有登录文件并从头开始重写,现在似乎一切正常。不知道bug在哪里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-19
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2016-05-03
    • 2016-11-07
    相关资源
    最近更新 更多