localhost上URL中的PHP会话ID

时间:2012-10-19 14:32:43

标签: localhost osx-mountain-lion php sessionid

出于某种原因,我正在处理的项目的本地安装是将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文件?梨可能搞乱这个吗?谢谢大家!

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

您应该在php.ini中设置如下:

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

修改

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

找到问题的好工具是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.

答案 2 :(得分:1)

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