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


Make use_trans_sid work (Append Session ID to URL)

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

你们所有的明星有什么想法吗?;)

围兜

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

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

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

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

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

谢谢奥利夫!!