Php 即使会话';的文件包含内容

Php 即使会话';的文件包含内容,php,session,Php,Session,我在PHP会话中遇到了这个错误:有时(在30-40页刷新之后,很少在仅仅1页刷新之后)会话变量(正确填写了上一页-我检查了它是否已设置)是空的,比如:array(0){},但是被访问的会话文件包含所需的内容,需要再刷新一次页面才能加载该会话数据(是的,我检查了两个页面上的会话ID是否完全相同)。有人知道为什么会这样吗?如何避免这种“空数组闪烁” 为了说明我在做什么:在主页上,我将CSS字符串保存到会话变量中,并生成指向PHP脚本的链接标记。当broswer调用此脚本时,将从会话加载该CSS字符串

我在PHP会话中遇到了这个错误:有时(在30-40页刷新之后,很少在仅仅1页刷新之后)会话变量(正确填写了上一页-我检查了它是否已设置)是空的,比如:
array(0){}
,但是被访问的会话文件包含所需的内容,需要再刷新一次页面才能加载该会话数据(是的,我检查了两个页面上的会话ID是否完全相同)。有人知道为什么会这样吗?如何避免这种“空数组闪烁”

为了说明我在做什么:在主页上,我将CSS字符串保存到会话变量中,并生成指向PHP脚本的链接标记。当broswer调用此脚本时,将从会话加载该CSS字符串并将其作为CSS文件输出。因此,实际上只有主页被刷新

当我成功加载页面并在不同的broswer选项卡中加载其他网站时,也会出现这种“空数组闪烁”,然后我返回页面的选项卡并刷新它,此时会出现我所说的会话错误(并在按照上述方式刷新页面后消失);但这又不是规则,它只是偶尔发生

请考虑以下事项:

  • 是的,
    会话_start()位于文件的开头

  • 我使用纯PHP会话机制(使用简单的应用逻辑:只在会话变量下保存一个字符串,并在下一页检索)

  • 我使用本地服务器(MAMP),所以不会被其他人的脚本意外删除
    /temp
    文件夹

  • 我尝试设置:
    session.gc\u probability=1
    session.gc\u divisior=100
    session.gc\u maxlife=1440
    ,但没有帮助;不同会话的生命周期也没有帮助,我也尝试了:
    session.use\u cookies=1
    with
    session.use\u only\u cookies=1
  • 是的,当
    会话_start()启动时,看起来确实发生了一些事情并且垃圾收集器尝试执行其任务,但为什么要使用具有完全相同会话id的相同会话文件,而不是执行一次(成功的)刷新
    
  • 作为:

    • 因此,我的猜测是,在服务器上的会话过期之后,浏览器仍然具有PHPSESSID cookie。如果它将其发送到服务器,服务器将找不到会话,只在$\u会话中放置一个空数组,使我不知所措。我希望这能帮助有同样问题的人


可能重复的No,
session.gc\u maxlifest=1440
不幸没有帮助。可能重复的No,
session.gc\u maxlifest=1440
不幸没有帮助。