php 禁用COOKIE获得SESSION

添加时间:15-12-28 所属分类:PHP工具与代码
  http://blog.sina.com.cn/s/blog_4dd4753901017jdl.html


我们知道当客户端浏览器把COOKIE禁掉后,服务器端的SESSION是没有办法正常使用的。因为服务器端的SESSION是通过 SESSIONID来区分不同用户的SESSION的,而这个SESSIONID就是通过客户端的COOKIE传递到服务器端的,更严格地说,因为在 PHP使用session_start()语句后,会向客户端发送一个头部信息,其中就指定了此次SESSION会话的SESSIONID,此 SESSIOID就是存放在客户端的COOKIE中的,现在COOKIE禁掉后,当然就无法保存SESSIONID了。

下面是session_start()的输出的头部信息:

[code]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
[/code]
现在可以确定把COOKIE禁掉后,无法使用SESSION。那遇到这种情况,客户就是要禁COOKIE,而且我们又要保证这部分用户能正常使用,该怎么办呢?办法就是使用PHP的output_add_rewrite_var这个函数。

这样就不怕禁用COOKIE了,因为SESSIONID会自动跟在URL后面而且FORM中会出现SESSIONID的HIDDEN值。在服务器端照常使用SESSION就可以了。

测试代码:test.php

[code]<?php
session_start();
$_SESSION['test'] = 1;
output_add_rewrite_var('PHPSESSID',session_id ());
echo '<a href="test1.php">link</a>';
?>[/code]

test1.php:

[code]<?php
session_start();
print_r($_SESSION);

?>[/code]

前篇:PHP cookie和session的分析 后篇:JS数组使用说明
发表我的评论


推荐文章   媒体卧底茶叶市场爆惊人内幕:香味可调...   奖励分没了,会影响孩子学特长?   买房前、买房中、买房后 买房全程防“坑...   “你们的建议真的帮不了我…”这大概是...   难得一见的济南老照片!那年泉城路原来...
随机文章   php 用iconv()函数 将Unicode编码转换成...   PHP加解密迅雷,flashget快车,QQ旋风地...   PHP去除字符串尾部空格和小数点   PHP的简单文字过滤函数   用【ASP】【PHP】设为桌面快捷方式完整...
广告

其他推荐

因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555