使use_trans_sid工作(将会话ID附加到URL)

时间:2012-04-09 17:31:32

标签: php

我正在失去头发。我想要的只是将会话ID附加到URL。解释我接受安全风险的原因:该网站仅供移动使用。某些移动浏览器不接受cookie(通常存储会话ID)。所以我没有太多选择,只能通过URL解析会话ID。

“所以,”我想,“这很简单。只需在每一页的开头使用它:”

ini_set('session.use_trans_sid', 1);
session_start();

无赖。没工作。好。然后我在我的子目录中创建了一个.htaccess(移动站点位于主站点的子目录中),其中包含:

php_flag session.use_trans_sid on
php_value session.use_trans_sid 1

没效果。生气。

接下来我尝试更改php.ini本身的设置只是为了测试它(不是一个选项,因为在网络服务器上运行的其他网站不能使用“URL-Session-ID”)。所以我确保设置了这个条目:

session.use_trans_sid = 1

然后我重新启动了网络服务器......令我惊讶但并不惊讶:没有效果!

在每种情况下我都添加了phpinfo();在我的页面的末尾,看看我的设置是否生效。在每种情况下,我都得到了session.use_trans_sid = 1的确认(根据phpinfo())。

这意味着我必须忽略一些事情。任何人都有想法?现在我所能做的就是手动将会话ID添加到我的代码中的每个链接。请帮我避免这个...... :)

你有什么想法吗? ;)

围兜

2 个答案:

答案 0 :(得分:1)

您是否在普通浏览器中对此进行测试,因为如果浏览器支持Cookie,则不会添加网址?

答案 1 :(得分:0)

好的......确实如此。 Olirav发现了这个问题。

在某处完成重定向时,整个系统不起作用。对于每个表单和每个链接,我调用相同的页面,通过中心文件运行它,我在那里做东西,然后相应地重定向。这有效地杀死了use_trans_sid。这意味着在该中心文件中我必须手动添加sid。像这样:

header("Location: " . $url . "index.php?sid=" . session_id());

我希望这可以帮助那些遇到同样问题的人。 :)

谢谢Olirav !!!