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
例程 :
错误提示
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' ];
?>
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()]);
}
请参照此例程修改符合您自己的程序。
问题 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()]);
}