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 相关文章推荐
实用函数7
Nov 08 PHP
抓取YAHOO股票报价的类
May 15 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
yii中widget的用法
Dec 03 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
php链表用法实例分析
Jul 09 PHP
php实现的单一入口应用程序实例分析
Sep 23 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 PHP
Laravel框架数据库迁移操作实例详解
Apr 06 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
微博短链接算法php版本实现代码
2012/09/15 PHP
php实现的日历程序
2015/06/18 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
document.all与WEB标准
2020/05/13 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
BootStrap表单验证实例代码
2017/01/13 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
基于Django用户认证系统详解
2018/02/21 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
给老师的检讨书
2014/02/11 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
毕业生求职信
2014/06/10 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书