我将现有并成功运行的站点复制到新的开发服务器。无法更改php会话cookie名称
在新服务器上登录,现在坏了,我跟踪它到一个事实,即尽管会话cookie被重命名......
ini_set('session.name', 'DOMAIN1');
...浏览器会将存储sesssion如饼干PHPSESSID。
当我从新服务器上的应用程序中删除上述行时,登录再次工作。但这不是一个好的解决方案,因为另一个应用程序也使用该名称下的PHPSESSID。
我宁愿找到奇怪行为的原因,而不是使用解决方法。如果我不修复它,它会把我咬在别的地方。
也许这已经是足够的信息给某人给我一个提示。如果不是,哪些信息会有用?
这台机器是一个非常裸体和基本的Ubuntu 8.04服务器,我安装了aptitude的apache2,mysql和php5。我还更新了lokales和时区。
解决方案:
我取代了线以上从接受的答案验证码...
if(ini_set('session.name', 'DOMAIN1') === false || !session_name('DOMAIN1'))
{
die('Unable to set sesssion scope');
}
...并登录现在工作在新服务器上。
不,ini_set()不应该修改INI文件:请参阅http://php.net/ini_set否则这将是一个很大的潜在安全漏洞。 – mojuba 2010-10-23 20:40:12
对不起,运行时只:) – RobertPitt 2010-10-23 20:42:41
谢谢,经过几个小时的搜索它终于有效。我用你的例子中的4行替换了遗留代码,并修复了它! – mit 2010-10-23 21:17:27