2011-11-23 55 views
0

我已经继承了一个使用基于URL的会话跟踪的网站。如何将网站从使用基于URL的会话跟踪转换为PHP中的基于会话的会话跟踪?

这里是通过phpinfo()函数的会话设置:

phpinfo session settings

这里是脚本的每一页上用于启动会议代码:

ini_set('session.use_cookies', 0); 
ini_set('session.name', 'ID'); 
ini_set('arg_separator.output', '&'); 
ini_set('session.gc_maxlifetime', 1440); 
ini_set('session.gc_probability', 30); 
session_start(); 

PHP似乎自动追加&SID=[sessionid]到网站上的任何内部链接。此外,在整个PHP脚本中,都有内部URL手动附加.'&ID='.session_id()

我假设以前的开发者是这样做的,这样网站才能在没有cookie的手机上工作。

2011年,这似乎不再成为问题了,因为市场上几乎所有的手机都接受cookies。 那么,如何将网站转换回处理会话的默认方式通过cookie(具体来说,我需要更改什么文件以及如何)?

此外,是否有可能有不同的网站处理会话取决于用户是否接受cookies?如果是这样,那么怎么样?

回答

0

看起来php.ini中有use_cookies正确的设置,这样你就可以删除的第一行来启用,或将其更改为1,纵观session configuration options,它看起来并不像有办法如果浏览器不接受cookie,则自动使用基于URL的会话ID。在php.ini

+0

我尝试将session.use_cookies设置为'1',它仍然使用基于URL的会话并自动将会话ID附加到URL。任何其他想法? – ProgrammerGirl

+0

phpinfo()看到某些值的事实让我觉得有一个.htaccess的地方有这些参数,或一些其他类型的本地配置文件覆盖php.ini。你能找到那样的东西吗? – Dan

0

变化(或ini_set)值session.use_only_cookieson,应该从增加SID停止PHP到URL

当然,你还需要摆脱每ini_set('session.use_cookies', 0);的手动附加session_id()

+0

如果session.use_only_cookies设置为关闭,是否可以同时使用两种会话类型,并且这种方式还可以兼容不支持cookie的旧手机? – ProgrammerGirl