问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

PHP中的session有效期默认是1440秒(24分钟),也就是说,客户端超过24分钟没有刷新,当前session就会失效。当然如果用户关闭了浏览器,会话也就结束了,Session自然也不存在了!

可以通过如下方式来设置:
<?php
session_start();
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>

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

你重新执行,完了还能有输出么?
没有输出,很可能是浏览器清了cookie缓存,或者配置中,缓存设置时间很短
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
管理员怎么设置? 企业微信管理员分为哪几种?应用权限上有什么区别?丨小裂变 我在网上下载了一个“系统之家GHOST WIN7 SP1完美激活旗舰版 V2.0... ...深度完美 GHOST WIN7 SP1 X86装机旗舰版V2012.11 我没有U盘需要怎么... 富士施乐 DocuPrint M158F基本参数 五年级语文造句!!十万火急 空的,都是五年级上册语文的,快!十万火急! 一份5年级语文期中试卷分析...十万火急!~~~今天就要 友情相遇经典诗词(描写友情的唯美诗句) 关于友谊诗词鉴赏(赠朋友的55句诗词) 关于session无法取值的问题!!PHP php session 获取不到值 php 取不出session值,是空的 php在服务器中获取不到session的值 php为什么获取不到session的值 如何去除 JSP 生成的 HTML 中的空格和换行 php 如何提取一遍文章中的前一百个字,提纯文字不要图片和其他的代码? linux服务器,更新PHP版本,phpinfo还显示以前的版本 阿里云linux服务器升级php求教 如何改变PHP的版本? linux下php版本怎么升级~? linux里怎么升级php版本 linux环境下怎么把php版本从PHP Version 5.2.10-2ubuntu6升级到PHP Version 5.2.17 linux编译安装php,怎么替换已有版本 Windows7的0Xc0000428 我进入f8 选择禁用驱动程序签名强制 可以跳过 但会蓝屏 怎 w7系统进不去提示0xc0000428 Win7 32位系统,开机无法进入系统桌面,错误代码0xc0000428 Windows无法验证 戴尔笔记本win7 0xc0000428 如图 怎么办?在线等 急急急急急 win7&#47;8 s双系统 bcdautofix修复后 win7 启动出现0xc0000428 怎么解决? win7系统未能启动,文件nEqFB2Vj,状态0xc0000428 php 方法里定义的session怎么获取不到 php session获取不到 关于php获取Session问题 怎么获取session中的值 下边的php中session用法不知道为什么获取不到值啊? (php)获取不到session的值 在其他页面 我在这边存储了一个session 跳转到其他页面就获取不到了 php在同一页面为什么获取不到session值? php重新访问页面后无法获取session的赋值 php获取session的值问题 php session跨页面取不到值的问题,高手指教。 PHP无法获得session的值 php把数据库查出来的放到session 为什么取不出来 关于PHP中SESSION取值的问题? PHP时间去掉中间空格 怎样隐藏yii路由中的index.php 如何去掉yii2中brandlabel的url连接 yii2 框架安装成功后,进入backend/web/index.php目录提示登录 yii2 gii curd生成的列表怎么修改 yii2中如何实现伪静态 如何把yii2的配置文件改为开发模式 yii2 为什么我的文件里面没有backend\config\main.php