php 取不出session值,是空的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 取不出session值,是空的相关的知识,希望对你有一定的参考价值。

a.php代码
<?php
@session_start();
$_SESSION['name']="tfnvwcwt";
echo"<br/>保存成功";
?>

b.php代码
<?php
echo"获取session<br/>";
@session_start();
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
echo"<br/>读取成功";
?>
浏览器显示的结果是这样的,为什么,a.php是写成功了,在也看那个文件了

你这里已经保存成功session了,打印也没问题 你这个是想输出session吧: echo"获取session<br/>"; 输出的话需要拼接 你这样不行 echo "获取".$_SESSION['name']."<br/>";这样就能输出你保存的session了 参考技术A 因为你的b.ph中的$_SESSION就是空的,a.php为什么有输出了,因为a.php中有对$_SESSION进行赋值,$_SESSION['name']="tfnvwcwt";就是赋值语句,同时有2个意思,一是声明了一个为name的$_SESSION字段,二是将该字段赋值为"tfnvwcwt"。你在b.php中没有对$_SESSION进行任何赋值操作,故输出是空的。追问

那 我要在b.php里读出那个值怎么弄啊,这个是我看视频按上步骤做,视频上能读出来,我的就读不出来

追答

你直接在b.php中按照a.php中加入对$_SESSION的操作,如下

";
@session_start();
$_SESSION["test"] = "12314214";
echo "";
print_r($_SESSION);
echo "";
echo"读取成功";
?>

追问

我是说要a.php里那个值,而且不是自己加一个进去啊,我要调用别的页面的值,

追答

那就要看你的php的配置文件php.ini中有关session的配置选项了,如下是我的相关配置:
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.serialize_handler = php
session.save_path = "N;/path"
其中关键配置为session.cookie_lifetime, session.auto_start,session.save_handler,session.save_path
我在本地测试了你的代码,将你的代码a.php和b.php放在我的测试环境中,当浏览器没有关闭时,访问a.php和b.php都可以输出正确的session数组。

php PHP - 检查目录是空的

<?php
function is_dir_empty($dir) {
    if (!is_readable($dir)) {
        return null;
    }
 
    return (count(scandir($dir)) == 2);
}
?>

以上是关于php 取不出session值,是空的的主要内容,如果未能解决你的问题,请参考以下文章

PHP 打印布尔值是空的,为啥?

struts2下s:iterator取不出值

为啥cookie是空的

securecrt 记录会话后,产生了session文件,但是打开文件怎么是空的。我操作不当?

java中,我在后台action中设置了session的值,webservice中得到session,但是里面是空的。

.NET 一般处理程序中获取到的session值为空