2

出于某种原因,我正在处理的项目的本地安装正在将 PHP 会话 ID 添加到 URL。这不会发生在任何其他服务器上。有没有我可以改变的设置来改变这个?我在 Mac OS 10.8.2 上使用 PHP 5.4

示例网址:http://localhost/project/subfolder/index.php/admin/game?PHPSESSID=mhnpc0g2c8rijqpkf8lhpfshh7

应该:http://localhost/project/subfolder/index.php/admin/game

更新:我检查了我的 PHP.ini 文件并且我的以下设置正确,但我仍然在 URL 中获取会话 ID。

session.use_cookies = 1
session.use_only_cookies = 1
session.use_trans_sid = 0

哦,为了更好的衡量,我在每次更改 PHP.ini 后重新启动 Apache :-)

第二次更新:我的 Mac 上还有什么地方可以隐藏 ini 文件?PEAR 可能在搞砸这个吗?谢谢大家!

4

3 回答 3

3

检查您的 php.ini 文件,更具体地说是有关会话内容的部分。确保设置使用 cookie 而不是 URL。

于 2012-10-19T14:34:44.477 回答
2

你应该在你的设置php.ini如下:

session.use_cookies = 1
session.use_only_cookies = 1
session.use_trans_sid = 0

编辑:

这可以由 php 本身使用ini_set函数覆盖,也可以在.htaccess文件中或在 apache 虚拟主机的描述中使用php_flag.

定位问题的一个好工具是grep实用程序。尝试像这样使用它:

egrep -ir 'php_falg|ini_set' /etc/httpd/

在 apache 的配置中搜索失败,并且再次使用相同的命令,但指向您的项目(如果它在.htaccess文件中并且在其他服务器上配置了AllowOverride None.htaccess文件的虚拟主机将无法在那里工作)

egrep -ir 'php_falg|ini_set' ~/Sites/ # or in whathever path your site is.
于 2012-10-19T14:39:57.707 回答
1
session.use_cookies = 1 session.use_only_cookies = 0 session.use_trans_sid = 1
于 2012-11-07T07:38:56.470 回答