今天写了一段代码,测试了一下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的保存路径我查了一下,结果在php目录下未发现session_temp目录,可能是这里的问题吧,我试着创建了一个同名的文件夹,然后设置为可写,然后重启apache,重新测试了一下,这次发现session值可以读取到了。
真是的,这简单的小问题也是需要认真排查的啊,发现自己最近有点浮躁呢。
session_start()方法之前有htmldom 也是没有问题的,不影响session值的读取
同样,session_start()方法前有echo 输出语句也是不影响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 Support | enabled |
Registered save handlers | files user |
Registered serializer handlers | php php_binary wddx |
Directive | Local Value | Master Value |
---|---|---|
session.auto_start | Off | Off |
session.bug_compat_42 | Off | Off |
session.bug_compat_warn | On | On |
session.cache_expire | 180 | 180 |
session.cache_limiter | nocache | nocache |
session.cookie_domain | no value | no value |
session.cookie_httponly | Off | Off |
session.cookie_lifetime | 0 | 0 |
session.cookie_path | / | / |
session.cookie_secure | Off | Off |
session.entropy_file | no value | no value |
session.entropy_length | 0 | 0 |
session.gc_divisor | 1000 | 1000 |
session.gc_maxlifetime | 1440 | 1440 |
session.gc_probability | 1 | 1 |
session.hash_bits_per_character | 5 | 5 |
session.hash_function | 0 | 0 |
session.name | PHPSESSID | PHPSESSID |
session.referer_check | no value | no value |
session.save_handler | files | files |
session.save_path | D:/php/session_temp | D:/php/session_temp |
session.serialize_handler | php | php |
session.use_cookies | On | On |
session.use_only_cookies | Off | Off |
session.use_trans_sid | 0 | 0 |
然后发现session这些都是打开的,session的保存路径我查了一下,结果在php目录下未发现session_temp目录,可能是这里的问题吧,我试着创建了一个同名的文件夹,然后设置为可写,然后重启apache,重新测试了一下,这次发现session值可以读取到了。
真是的,这简单的小问题也是需要认真排查的啊,发现自己最近有点浮躁呢。
session_start()方法之前有htmldom 也是没有问题的,不影响session值的读取
同样,session_start()方法前有echo 输出语句也是不影响session值的读取的。