PHP中禁用cookie后的session
2011-11-07 19:27
239 查看
我们知道当客户端浏览器把COOKIE禁掉后,服务器端的SESSION是没有办法正常使用的。因为服务器端的SESSION是通过SESSIONID来区分不同用户的SESSION的,而这个SESSIONID就是通过客户端的COOKIE传递到服务器端的,更严格地说,因为在PHP使用session_start()语句后,会向客户端发送一个头部信息,其中就指定了此次SESSION会话的SESSIONID,此SESSIOID就是存放在客户端的COOKIE中的,现在COOKIE禁掉后,当然就无法保存SESSIONID了。
下面是session_start()的输出的头部信息:
Content-type: text/html
X-Powered-By: PHP/4.3.3
Set-Cookie: PSD=9b577c86baea8a15ebe15b220ee1e180; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
现在可以确定把COOKIE禁掉后,无法使用SESSION。那遇到这种情况,客户就是要禁COOKIE,而且我们又要保证这部分用户能正常使用,该怎么办呢?办法就是使用PHP的output_add_rewrite_var这个函数。
这样就不怕禁用COOKIE了,因为SESSIONID会自动跟在URL后面而且FORM中会出现SESSIONID的HIDDEN值。在服务器端照常使用SESSION就可以了。
测试代码:test.php
<?php
session_start();
$_SESSION['test'] = 1;
output_add_rewrite_var('PHPSESSID',session_id ());
echo '<a href="test1.php">link</a>';
?>
test1.php:
<?php
session_start();
print_r($_SESSION);
?>
下面是session_start()的输出的头部信息:
Content-type: text/html
X-Powered-By: PHP/4.3.3
Set-Cookie: PSD=9b577c86baea8a15ebe15b220ee1e180; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
现在可以确定把COOKIE禁掉后,无法使用SESSION。那遇到这种情况,客户就是要禁COOKIE,而且我们又要保证这部分用户能正常使用,该怎么办呢?办法就是使用PHP的output_add_rewrite_var这个函数。
这样就不怕禁用COOKIE了,因为SESSIONID会自动跟在URL后面而且FORM中会出现SESSIONID的HIDDEN值。在服务器端照常使用SESSION就可以了。
测试代码:test.php
<?php
session_start();
$_SESSION['test'] = 1;
output_add_rewrite_var('PHPSESSID',session_id ());
echo '<a href="test1.php">link</a>';
?>
test1.php:
<?php
session_start();
print_r($_SESSION);
?>
相关文章推荐
- php禁用cookie后session设置方法分析
- 浏览器禁用cookie后php如何保持session会话-use_trans_sid机制
- 浏览器禁用cookie后php如何保持session会话-use_trans_sid机制
- [PHP]如果客户端禁用cookie,session还能用吗?(终于找到了答案)
- php 会话控制(禁用cookie后session为什么会失效?)
- PHP客户端禁用cookie如何使用session
- PHP 浏览器禁用cookie,解决session变量不能传值
- php在客户端禁用cookie时让session不失效的解决方法
- PHP客户端禁用cookie如何使用session
- PHP cookie禁用时session 方案
- 【转】PHP cookie禁用时session 方案
- PHP客户端禁用cookie如何使用session
- [PHP]如果客户端禁用cookie,session还能用吗?
- PHP cookie禁用时session 方案
- php session原理深入理解(禁用cookie和自定义session)
- 禁用Cookie时,PHP共享Session文件解决方案
- 浏览器禁用Cookie后PHP怎样实现session会话保持
- php 禁用cookie,还能使用session,url重写
- PHP:客户端禁用cookie之后如何使用session
- 浏览器禁用cookie后php如何保持session会话-use_trans_sid机制