background image

关于

session 的问题集锦解决方案

1.
错误提示
Warning:Cannotsendsessioncookie-headersalreadysent
Warning:Cannotsendsessioncachelimiter-headersalreadysent
分析及解决办法
这一类问题,的原因是你在程序中使用

session_start()时,之前已经有实际的 html 内容输出

了。或许你说,我没有啊,我只不过是

echo 或 print 一条消息了。很抱歉,你的 echo 或 print

语 句 所 产 生 的 输 出 , 就 是 实 际 的

html 内 容 输 出 。 解 决 此 类 问 题 的 办 法 是 , 将 你 的

session_start()调到程序的第一行。

2.
错误提示
Warning:open(F:/689\PHP\sessiondata\sess_66a39376b873f4daecf239891edc98b5,O_RDWR)fail
ed
分析及解决方法
出现这样的错误语句一般是因为你的

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:Tryingtodestroyuninitializedsessionin
分析及解决方法
出类这样的提示,一般情况都是你直接调

session_destroy()函数造成的。很多的朋友认为

session_destroy()函数可以独立的运行,其实不然。解决的方法是在你调 session_destroy()函
数之前,要用

session_start()开启 session 的功能。

4.问题:怎么获得当前 session 的 id 值呢?
最简单的方法是

:

echoSID;
你会发现的。

5. 问 题 : 我 的 程 序 , 在 调 用 header 函 数 之 前 没 有 任 何 的 输 出 , 虽 然 我 include 了 一 个
config.php 文件,但在 config.php 文件中也没有任何的输出,为什么 session 还是会报出与问