我继承了一个使用基于网址的会话跟踪的网站。
以下是通过phpinfo()的会话设置:
以下是用于启动会话的脚本的每个页面上使用的代码:
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年,这似乎不再是一个问题,因为市场上几乎所有的手机都接受cookie。 那么如何通过cookie将网站转换为处理会话的默认方式(具体来说,我需要更改哪些文件以及如何更改)?
此外,根据用户是否接受cookie,是否可以使网站处理会话的方式不同?如果是这样,那怎么样?
答案 0 :(得分:0)
看起来php.ini具有use_cookies的正确设置,因此您可以删除第一行以启用它,或将其更改为1.查看session configuration options,它看起来不像是如果浏览器不接受cookie,则自动使用基于URL的会话ID的方法。
答案 1 :(得分:0)
将ini_set
的php.ini(或session.use_only_cookies
)值更改为on
,这会阻止PHP将SID添加到网址
当然,您还需要删除每个ini_set('session.use_cookies', 0);
手动附加的session_id()