【问题标题】:Accessing SESSION variables from another php file从另一个 php 文件访问 SESSION 变量
【发布时间】:2012-06-29 06:38:53
【问题描述】:

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

我该怎么做?

这就是我所做的。

test.php

$_SESSION['SESS_VERSION'] = $member['Version'];
session_write_close();
header('location: '.$_SESSION['SESS_VERSION']);

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

例如在那个页面上:

test2.php

我正在从 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();
?>

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

Warning: Cannot modify header information - headers already sent 

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

【问题讨论】:

标签: php session session-variables


【解决方案1】:

你需要

session_start()

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

你也得到了不能修改标题错误,因为你有

代码如下:

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

【讨论】:

  • 很确定代码块中的 'Here's the code' 只是不正确的 SO 格式,而不是实际的文件内容。
  • 是的,在这种情况下,他可能在 php 标签之前有空格,只有这样他才会得到该代码的标题错误。但是如果他在使用 $_SESSION 之前不知道使用 session_start 你永远不会知道大声笑
猜你喜欢
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
相关资源
最近更新 更多