如何在禁用cookie时访问php会​​话?

时间:2012-07-09 11:36:39

标签: php session post cookies get

我为客户构建的电子商务系统存在问题,部分订单空白。我添加了代码来检查是否正在设置会话,并且没有在某些订单上设置它们,这就是它出现空白的原因。

我使用会话的原因是存储订单信息

例如:$_SESSION['data']=$_POST;

我只能假设用户在浏览器中禁用了Cookie,并且想知道如何解决这个问题。

我想要做的是检查Cookie是否已启用,如果没有通过$_GET发送会话ID,但如何使用会话ID访问$_SESSION['data']

所以我的问题是:

如何检查Cookie是否已启用,以及是否通过get发送会话ID以及如何使用会话ID访问$_SESSION['data']

2 个答案:

答案 0 :(得分:2)

您必须手动打开会话管理器,例如

<?
session_id($_GET['session_id']); 
session_start();
//you can now acccess $_SESSION['data']

答案 1 :(得分:2)

你可以在php.ini中设置session.use_trans_sid,它会自动通过GET或POST附加会话ID

它通过在php.ini中再次根据url_rewriter.tag条目自动重写某些元素(如href)来完成此操作。

请注意,使用Cookie通常更可取,因为在网址中存储会话ID会导致用户无意中与其他人共享会话ID