php判断cookie是否禁用,php浏览器cookie被禁用了 session还能用么?

网上搜了 在浏览器禁用cookie的情况下是可以使用session的,我也在本地尝试了,方法是在php.ini中设置trans_sid为1,然后通过url中加入?PHPSESSID=XXXXXX的方式达到登录的状态,但是这个xxx在没有登录的时候我怎么会知道是什么呢?我尝试的时候是在没禁用cookie的时候把之前一次的登录的PHPSESSID复制过来的

会话开始之后,可以使用 SID 常量

To continue, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">clickhere</a>.

SESSION_ID可以自己指定是什么,只是使用COOKIE的时候PHP会默认帮你生成唯一的一个SESSION_ID.

可以使用session,只需要带上SESSION_ID就行了.

http://…x.com/?sessionid=xxxx 然后用$_GET获取这个sessionid就行了.

还可以通过表单隐藏域来传输,反正只要你能带上sessionid就可以用session..

参考:http://blog.csdn.net/zhao_liw…

test.php

<?php

session_id('sessionid');

session_start();

echo $sesid = session_id();

$_SESSION['name'] = 'zhangsan';

echo "<a href='./test3.php?sessionid=$sesid'>获取session</a>";

?>

test3.php

<?php

session_id($_GET['sessionid']);

session_start();

var_dump($_SESSION);

?>

输出结果:(我已经禁用了cookie)

bVK6nN?w=1310&h=927

没有登录的时候session id会存在吗,只要执行session_start()后就会生成吧

在默认情况下,你的session_id是保存在cookie中的,在你禁用了cookie后,session是无法使用的。但是如果你把session_id存储位置做了处理,那么是可以用的

以前弄过一种比较坑的方法,

用户登录以后把session_id相关信息保存在一张表中,例如session_id、用户ID、过期时间、浏览器信息等。

一个是客户端存储,一个是服务端存储,但禁用cookie的情况下就无法使用了,因为他无法判断浏览者身份

禁用了cookie。session也就无法使用了

楼上正解已出,在url上拼装session参数,但安全性大大降低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值