0

由于某种原因,我在会话方面遇到了一些问题。到目前为止,我从来没有遇到过会话问题。我有三个页面:

/index.php
/test/sessions.php
/test/sessions2.php

所有这些都具有相同的代码(/test/sessions.php 还设置了会话值):

<?php
if(!isset($_SESSION)){
    session_start();
}
var_dump($_SESSION);
echo(session_id());
?>

session.php(设置值):

<?php
session_start();
$_SESSION['foo'] = 'bar';
?>

该代码在 /test/ 目录中的页面上工作正常,但在索引页面上却不行。当我导航到索引页面时,它会清除所有会话数据,但就像我说的,注意 /text/ 目录中的页面是错误的。我错过了什么吗?

4

2 回答 2

0

您的会话 cookie 路径似乎是/test ../。将其设置为/可能会解决此问题。

于 2012-12-12T20:26:31.050 回答
-1
if(!isset($_SESSION)){
    session_start();
}

您的代码在开始会话之前检查 $_SESSION。

必须开始您的会话才能使 $_SESSION 栩栩如生。

会话数据根据您处理会话的方式存储在磁盘或数据库中。

每次启动会话时,都会从存储的数据中创建 $_SESSION 变量。

每次一个php脚本执行完毕,都会将$_SESSION中的数据序列化并写入文件或db...,并关闭变量。

因此,除非您开始会话,否则不会有 $_SESSION。

session_start();

var_dump($_SESSION);

这是合适的

于 2012-12-12T20:32:55.837 回答