php 取不出session值,是空的

发布网友 发布时间:2022-04-06 04:45

我来回答

3个回答

懂视网 时间:2022-04-06 09:06

php获取不到session值的解决办法:首先创建了一个名为“session_temp”的文件夹;然后将其权限设置为“可写”;最后重启apache即可。

推荐:《PHP视频教程》

今天写了一段代码,测试了一下session,却发现写入的session值获取不到,检查了一段时间,终于发现问题所在:
本人的环境是windows7+apache2.22+php5.2.17
具体的session值代码

page1.php
<?php
echo "what are you doing now?";
session_start();
$_SESSION['a'] = 'wangzhong';
$_SESSION['b'] = 'liyu';
?>
page2.php
<?php
echo "I am testing";
session_start();
echo $_SESSION['who'].'<br/>';
echo$_SESSION['hiswife'],'<br/>;
?>


这两个测试session读取的页面,发现page2.php获取不到page1.php中保存的值,具体原因为什么呢?
我查了一下apache中关于session的配置,具体如下:

session

Session Supportenabled
Registered save handlersfiles user
Registered serializer handlersphp php_binary wddx
DirectiveLocal ValueMaster Value
session.auto_startOffOff
session.bug_compat_42OffOff
session.bug_compat_warnOnOn
session.cache_expire180180
session.cache_limiternocachenocache
session.cookie_domainno valueno value
session.cookie_httponlyOffOff
session.cookie_lifetime00
session.cookie_path//
session.cookie_secureOffOff
session.entropy_fileno valueno value
session.entropy_length00
session.gc_pisor10001000
session.gc_maxlifetime14401440
session.gc_probability11
session.hash_bits_per_character55
session.hash_function00
session.namePHPSESSIDPHPSESSID
session.referer_checkno valueno value
session.save_handlerfilesfiles
session.save_pathD:/php/session_tempD:/php/session_temp
session.serialize_handlerphpphp
session.use_cookiesOnOn
session.use_only_cookiesOffOff
session.use_trans_sid00

然后发现session这些都是打开的,session的保存路径我查了一下,结果在php目录下未发现session_temp目录,可能是这里的问题吧,我试着创建了一个同名的文件夹,然后设置为可写,然后重启apache,重新测试了一下,这次发现session值可以读取到了。

真是的,这简单的小问题也是需要认真排查的啊,发现自己最近有点浮躁呢。

session_start()方法之前有htmldom 也是没有问题的,不影响session值的读取同样,session_start()方法前有echo 输出语句也是不影响session值的读取的。

热心网友 时间:2022-04-06 06:14

你这里已经保存成功session了,打印也没问题 你这个是想输出session吧: echo"获取session<br/>"; 输出的话需要拼接 你这样不行 echo "获取".$_SESSION['name']."<br/>";这样就能输出你保存的session了

热心网友 时间:2022-04-06 07:32

因为你的b.ph中的$_SESSION就是空的,a.php为什么有输出了,因为a.php中有对$_SESSION进行赋值,$_SESSION['name']="tfnvwcwt";就是赋值语句,同时有2个意思,一是声明了一个为name的$_SESSION字段,二是将该字段赋值为"tfnvwcwt"。你在b.php中没有对$_SESSION进行任何赋值操作,故输出是空的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com