从另一个 php 文件访问 SESSION 变量

use*_*456 2 php session session-variables

我想访问我在另一个 php 文件中声明的会话变量。

我怎样才能做到这一点?

这就是我所做的。

测试.php

$_SESSION['SESS_VERSION'] = $member['Version'];
session_write_close();
header('location: '.$_SESSION['SESS_VERSION']);
Run Code Online (Sandbox Code Playgroud)

该会话变量正在工作,我已正确重定向到另一个页面。

例如在该页面上:

test2.php
Run Code Online (Sandbox Code Playgroud)

我正在从 javascript 调用 php 脚本来返回 JSON 格式的数据。

我在该脚本中试图做的test3.php是访问会话变量test.php

这是代码:

<?php
header("Content-type: application/json; charset=UTF-8");

echo '{ "results" : [ ';

$result = dbMySql::Exec("SELECT 
    m.data1
    v.data2,
    k.data3
FROM {$_SESSION['SESS_MAIN_BASE']} m, {$_SESSION['SESS_SECOND_BASE']} v, {$_SESSION['SESS_THIRD_BASE']} k");
$result_array = array();
?>
Run Code Online (Sandbox Code Playgroud)

为什么我无法访问此 php 页面上的任何会话变量?也许我的语法不正确。但这是我收到的错误:

Warning: Cannot modify header information - headers already sent 
Run Code Online (Sandbox Code Playgroud)

当然还有变量为空的错误。

Pat*_*ans 6

你需要

会话开始()

在每个 php 脚本的顶部,否则会话变量在 php 文件中毫无意义。

此外,您还会收到“无法修改标头”错误,因为您有

这是代码:

在标题之前发送到浏览器,将所有标题功能移到任何内容之前