PHP session_start()问题解疑(详细介绍)


Posted in PHP onJuly 05, 2013

本文,将这些问题,做一个简单的汇总,以便大家查阅。
1.
错误提示
Warning: Cannot send session cookie - headers already sent
Warning: Cannot send session cache limiter - headers already sent
分析及解决办法
这一类问题,的原因是你在程序中使用PHP 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: emp
session.cookie_path = c: emp
然后在c:目录下建立一个temp目录,即可

3.
错误提示
Warning: Trying to destroy uninitialized session in
分析及解决方法
出类这样的提示,一般情况都是你直接调session_destroy()函数造成的。很多的朋友认为session_destroy()函数可以独立的 运行,其实不然。解决的方法是在你调session_destroy()函数之前,要用PHP session_start()开启session的功能。

4.问题:怎么获得当前session的id值呢?
最简单的方法是:
echo SID;
你会发现的。

5.问题:我的程序,在调用header函数之前没有任何的输出,虽然我include了一个config.php文件,但在config.php 文件中也没有任何的输出,为什么session还是会报出与问题1同样的错误呢,是不是因为我在header之前用了PHP 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所注册的变量值。请问如何解决?
问题的程序片段:
    session_start();  
    $ ok  = 'love you';  
    session_register('ok');  
    header("location : next.php");  
    ?> 
    next.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
例程:
    session_start();  
    $ username  = 'stangly.
    wrong';  
    session_register('
    username'); 
    echo $HTTP_SESSION_VARS
    ['username'];  
    echo ' 
    ';  
    echo $_SESSION
    ['username'];  
    ?>   
请参照此例程修改符合您自己的程序。

问题10:session_unregister() 和 session_destroy() 有何区别?
session_unregister()函数主要作用是注消当前的一sion.(译自于php.net)
例程:
    if(isset($_COOKIE[session_name()])) {  
    session_start();  
    session_destroy();  
    unset($_COOKIE[session_name()]);  
    }
以上,所述是一些新手经常遇到的PHP session_start()问题。或许是详述不清,难免有误所在,请高手指点批评。

PHP 相关文章推荐
php 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 PHP
调整PHP的性能
Oct 30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
使用PHP实现生成HTML静态页面
Nov 18 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
PHP加密解密实例分析
Dec 25 PHP
Zend Framework教程之MVC框架的Controller用法分析
Mar 07 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 #PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 #PHP
浅析PHP的ASCII码转换类
Jul 05 #PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 #PHP
PHP cdata 处理(详细介绍)
Jul 05 #PHP
PHP的基本常识小结
Jul 05 #PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 #PHP
You might like
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
php多文件上传下载示例分享
2014/02/20 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
js获取url中"?"后面的字串方法
2014/05/15 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
javascript表单正则应用
2017/02/04 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
python基础教程之常用运算符
2014/08/29 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
python ubplot使用方法解析
2020/01/10 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
大学生村官心得体会范文
2014/01/04 职场文书
大学生的自我鉴定范文
2014/01/21 职场文书
拆迁委托协议书
2014/09/15 职场文书
员工2014年度工作总结
2014/12/09 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
仙境之桥观后感
2015/06/16 职场文书
公司仓库管理制度
2015/08/04 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
Python编写冷笑话生成器
2022/04/20 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python