PHP session常见问题集锦及解决办法总结


Posted in PHP onMarch 18, 2007

1. 
   错误提示 
   Warning: Cannot send session cookie - headers already sent 
   Warning: Cannot send session cache limiter - headers already sent 
   分析及解决办法 
   这一类问题,的原因是你在程序中使用session_start()时,之前已经有实际的html内容输出了。或许你说,我没有啊,我只不过是echo或print一条消息了。很抱歉,你的echo或print语句所产生的输出,就是实际的html内容输出。解决此类问题的办法是,将你的session_start()调到程序的第一行。 
   2. 
   错误提示 
   Warning: open(F:/689phpsessiondatasess_66a39376b873f4daecf239891edc98b5, O_RDWR) failed 
   分析及解决方法 
   出现这样的错误语句一般是因为你的php.ini中关于session.save_path一项没有设置好,解决的方法是将session.save_path和session.cookie_path 设置置为 
   session_save_path = c:temp 
   session.cookie_path = c:temp 
   然后在c:目录下建立一个temp目录,即可 
   3. 
   错误提示 
   Warning: Trying to destroy uninitialized session in 
   分析及解决方法 
   出类这样的提示,一般情况都是你直接调session_destroy()函数造成的。很多的朋友认为session_destroy()函数可以独立的运行,其实不然。解决的方法是在你调session_destroy()函数之前,要用session_start()开启session的功能。 
   4.问题:怎么获得当前session的id值呢? 
   最简单的方法是: 
   echo SID; 
   你会发现的。 
   5.问题:我的程序,在调用header函数之前没有任何的输出,虽然我include了一个config.php文件,但在config.php文件中也没有任何的输出,为什么session还是会报出与问题1同样的错误呢,是不是因为我在header之前用了session_start()的缘故呢? 
   答:或许你确实认真的检查了你的php程序,在引用header()之前确实也没有任何的输出,并且在你的include文件中也没有任何的输出!但是你是否用光标键在?>这个PHP代码结束语句后移动检查呢?那么你会发现在?>这个后面,有一个空行或几个空格,你删除了这几个空行或空格,那么问题就解决了。 
   注:此问题,会出PHP4.1.2中,更高版本,没有测试过。 
   6.问:用session做登录主页面后,其它页面怎么用session限制登录。。。 
   答:最简单的方法是 
   session_start(); 
   if(!session_registered('login') ││ $login != true) { 
   echo "你没有登陆"; 
   exit; 
   } 
   7.问:我用session_register()注册了session变量,可是当我用header或用javascript的重定向语句,那么在一下页面中,我却访问不到session所注册的变量值。请问如何解决? 
   问题的程序片段: 
   <?php    
   session_start(); 
   $ok = 'love you'; 
   session_register('ok'); 
   header("location : next.php"); 
   ?> 
   next.php
   <?php
   session_start(); 
   echo $ok; 
   ?> 
   解决的方法: 
   当你用header函数或window.location这样的功能后,你上一个页面所注册的session变量,就会容易的丢失,关于这个问题的原因,至今仍没有一个详细的回答。 
   不过有解决的方法。如下所示 
   header("Location: next.php" ."?" . SID); 
   在跳转到下一页面的时候,将session的当前id做为一个参数,传到后一个页面。 
   8.session如何传数组 
   session_register('data'); 
   $data=array(1,2,3,4); 
   方法是先注册后赋值 
   9.问题9:我是不是可以用像$HTTP_GET_VARS['**']方式来访问session值呢? 
   回答:可以,你可以使用如下global数组来访问session,以加强网页的安全性 
   $HTTP_SESSION_VARS 
   $_SESSION 
   例程:
<?php
   session_start(); 
   $username = 'stangly.wrong'; 
   session_register('username'); 
   echo $HTTP_SESSION_VARS['username']; 
   echo ' 
   '; 
   echo $_SESSION['username']; 
   ?> 
php爱好者站 http://www.phpfans.net 为phper提供一切资讯.
请参照此例程修改符合您自己的程序。 
   问题10:session_unregister() 和 session_destroy() 有何区别? 
   session_unregister()函数主要作用是注消当前的一个session变量。不过要注意的是,如果你用$HTTP_SESSION_VARS或$_SESSION在当前页面中引用过session变量,那么你可能需要和unset()配合 来注消session变量。 
   而session_destroy()是清除当前的session环境。意思就是说,当你用session_destroy()函数后,那么你就不可能再用session_is_registered()来检测session的变量了。但是需要注意的是他不能清除global中的session或使用了session cookie的中的session.所以在用session_destroy之前,最好不要用$HTTP_SESSION_VARS $_SESSION来访问session.(译自于php.net) 
   例程: 
   if(isset($_COOKIE[session_name()])) { 
   session_start(); 
   session_destroy(); 
   unset($_COOKIE[session_name()]); 
   } 

PHP 相关文章推荐
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
php设计模式 Builder(建造者模式)
Jun 26 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
ThinkPHP调试模式与日志记录概述
Aug 22 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
用PHP生成html分页列表的代码
Mar 18 #PHP
用PHP生成静态HTML速度快类库
Mar 18 #PHP
PHP实现采集程序原理和简单示例代码
Mar 18 #PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 #PHP
dedecms模板标签代码官方参考
Mar 17 #PHP
收集的DedeCMS一些使用经验
Mar 17 #PHP
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 #PHP
You might like
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2013/01/22 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
javascript判断office版本示例
2014/04/11 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
Django如何将URL映射到视图
2019/07/29 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
模范教师事迹材料
2014/02/10 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
大学计划书范文800字
2014/08/14 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
python中取整数的几种方法
2021/11/07 Python
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL