0

我为此脱发。我想要的只是将会话 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 添加到代码中的每个链接。请帮我避免这种情况... :)

你有什么想法吗?;)

围兜

4

2 回答 2

1

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

于 2012-04-09T17:36:36.160 回答
0

好吧……确实是这样。奥利拉夫发现了这个问题。

当在某处进行重定向时,整个系统将无法工作。对于每个表单和每个链接,我都调用同一个页面,通过一个中央文件运行它,我在其中执行操作,然后相应地重定向。这有效地杀死了 use_trans_sid。这意味着在该中心文件中,我必须手动添加 sid。像这样的东西:

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

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

谢谢奥利拉夫!_

于 2012-04-11T21:34:07.807 回答