如何将站点从使用基于URL的会话跟踪转换为PHP中基于库存的会话跟踪?

时间:2011-11-23 18:47:54

标签: php session cookies session-cookies

我继承了一个使用基于网址的会话跟踪的网站。

以下是通过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年,这似乎不再是一个问题,因为市场上几乎所有的手机都接受cookie。 那么如何通过cookie将网站转换为处理会话的默认方式(具体来说,我需要更改哪些文件以及如何更改)?

此外,根据用户是否接受cookie,是否可以使网站处理会话的方式不同?如果是这样,那怎么样?

2 个答案:

答案 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()