【问题标题】:PHP page not updating unless I press CTRL + F5除非我按 CTRL + F5,否则 PHP 页面不会更新
【发布时间】:2014-02-27 08:15:31
【问题描述】:

我有一个正常的 php 项目,其中每个页面都不会更新,除非我按 CTRL+F5。

现在最大的问题是我无法在我销毁会话的 logout.php 上按 CTRL+F5。因此,我再次将其重定向到登录。会话正在销毁并重定向到登录页面,但除非我按 CTRL+F5,否则它不会更新。

注销.php

   $_SESSION['user_type']       ='';
   $_SESSION['balance']         ='';
   unset($_SESSION['balance']);
   unset($_SESSION['user_type']);
   session_destroy();
   echo '<script>window.location.href="login.php"</script>';
   exit(0);

【问题讨论】:

  • 你为什么使用 JS 重定向而不是 PHP 的 header() ??
  • 如果用户关闭了 JS,&lt;script&gt;window.location.href="login.php"&lt;/script&gt; 将无法重定向,请考虑改用header()
  • 另外,好像是缓冲区问题,看看ob_start()ob_flush
  • 先生。 Shankar 我尝试同时使用 JS 和 header() 它正在重定向但到 login.php ...并且在 login.php 上我是 print_r($_SESSION)。这将第一次显示会话,如果我按 CTRL+F5,它将显示空白数组
  • 您是否在此页面中开始会话 session_start();

标签: php


【解决方案1】:

当您想销毁会话时,您仍然需要将session_start(); 放在页面顶部,否则会话将无法正确销毁,我宁愿使用header(); 重定向到登录页面而不是@ 987654323@

header("location: login.php");

【讨论】:

    【解决方案2】:

    而不是echo '&lt;script&gt;window.location.href="login.php"&lt;/script&gt;'; 尝试使用

    header('location:login.php');
    

    echo '<meta http-equiv="refresh" content="1;url=login.php">';
    

    【讨论】:

    • 先生。 Ganesh ..Thanx 回复...但我尝试同时使用 JS 和 header() 它正在重定向但到 login.php ......在 login.php 上我是 print_r($_SESSION)。这将第一次显示会话,如果我按 CTRL+F5,它将显示空白数组
    • 单独回显 &lt;meta&gt; 刷新标签不是好的做法 - 这应该包含在有效的 HTML 文档中。
    【解决方案3】:

    session_destroy();之后使用header('location:login.php');重定向你​​的页面

    【讨论】:

      猜你喜欢
      • 2012-11-12
      • 2015-09-26
      • 2022-07-19
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2012-07-31
      • 1970-01-01
      • 2017-02-16
      相关资源
      最近更新 更多