未定义的变量:通过 JavaScript 触发器通过 post 发送变量时_SESSION

2022-08-30 13:53:45

在我的索引.php文件中,我调用并设置了几个会话变量。在第二个PHP文件中,我想访问这些会话变量。session_start()

问题是,这个PHP文件纯粹是一个后端脚本,当JavaScript函数被触发时被POSTED。当 POST 调用尝试执行第二个 PHP 文件中的脚本时,错误日志将报告:

_SESSION是一个未定义的变量。

我尝试调用并在第二个PHP文件的顶部,但问题仍然存在。start_session()session_regenerate_id()

我假设正在发生的事情是,因为它在POST中,所以这个PHP文件在它自己的会话中,因为我仍然能够做到这一点。$_COOKIE[ini_get('session.name')]

我试图传递给第二个PHP文件的信息不是任何需要保护的信息,但将来知道如何做到这一点会很好:通过POST调用PHP文件并且仍然有我的会话变量。


答案 1

POST请求和会话没有什么特别之处。
您只需要在要使用会话的每个文件请求的顶部调用,就是这样。session_start

考虑到这一点再试一次,它应该有效。


答案 2
session_start();  

是大多数像这样的话题的答案。我一直在努力解决这个问题,我用这个代码解决了我的问题

    if (version_compare(PHP_VERSION, '5.4.0', '<')) {
        if(session_id() == '') {session_start();}
    } else  {
       if (session_status() == PHP_SESSION_NONE) {session_start();}
    }

推荐