如果多次刷新页面,为什么PHP会话会取消设置

如果多次刷新页面,为什么PHP会话会取消设置,php,Php,这是我检查用户是否登录的代码: if (!$_SESSION['userInfo']['name']) { Redirect('login.php'); } 重定向页面的代码是: function Redirect($url) { ob_start(); header('location:'.$url); exit; } 当我按一次刷新按钮时,此代码工作正常,但当我按多次刷新按钮时,会话变量将被取消设置并重定向到登录页面 我将此代码与API一起使用,加载页面几

这是我检查用户是否登录的代码:

if (!$_SESSION['userInfo']['name'])
{
    Redirect('login.php');
}
重定向页面的代码是:

function Redirect($url)
{
    ob_start();
    header('location:'.$url);
    exit;
}
当我按一次刷新按钮时,此代码工作正常,但当我按多次刷新按钮时,会话变量将被取消设置并重定向到登录页面

我将此代码与API一起使用,加载页面几乎需要5-10秒。如果在加载之前按下刷新按钮,则会发生这种情况

可能会出现什么问题?

请尝试使用“空”进行检查

注意:在登录之前,请确保您没有在$_会话['userInfo']['name']中设置任何值。登录后,您还必须清除它。

尝试使用isset函数ref::

并确保在有效会话期间不清除$\u SESSION变量,并且确保在用户注销时清除它

可能仍然使用:

if (!isset($_SESSION['userInfo']['name']))
{
    header('Location: login.php');
}

您可能忽略了代码段中的代码,但确实启动了会话吗

session_start()
if (!isset($_SESSION['userInfo']['name']))
{
    Redirect('login.php');
}

添加重定向函数的代码。在代码中的某个地方,您可能正在清除该值。请检查您的代码..并添加登录代码。php@KajalSingh请尝试在登录页面打印$\u会话,为您提供提示。在加载上一个刷新操作之前,我多次按刷新按钮时无效。@KajalSingh请尝试在登录和其他页面中打印您的会话数据,这样您就可以得到一个提示确认您启动了会话?=>如果会话没有启动,那么登录和注销过程是如何工作的?好的,我只是先检查一下基础知识,因为你的问题没有提到注销,而且你的登录也被破坏了。
if (!isset($_SESSION['userInfo']['name']))
{
    header('Location: login.php');
}
session_start()
if (!isset($_SESSION['userInfo']['name']))
{
    Redirect('login.php');
}