php浏览器cookie被禁用了 session还能用么?
大家讲道理
大家讲道理 2017-04-11 10:23:51
[PHP讨论组]

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(8)
黄舟

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

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

PHPz

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)

迷茫

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

怪我咯

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

PHP中文网

以前弄过一种比较坑的方法,
用户登录以后把session_id相关信息保存在一张表中,例如session_id、用户ID、过期时间、浏览器信息等。

ringa_lee

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

ringa_lee

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

PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号