我的网站上有一个目录,我已经实现了PEAR的Auth来运行我的身份验证。它运作得很好。
但是,我试图复制一下我的网站(它将被翻译成另一种语言),在这个新网站上,Auth进程似乎无法正常工作。
我可以正常登录,但每当我尝试转到同一目录中的其他页面,并使用Auth进行授权时,它会强制我再次登录。
这是我的逻辑:
$auth_options = array(
'dsn' => mysql://user:password@server/db',
'table' => 'users',
'usernamecol' => 'username',
'passwordcol' => 'password',
'db_fields' => '*'
);
$auth = new Auth("DB", $auth_options, "login_function");
$auth->setFailedLoginCallback('bad_login');
$auth->start();
if (!$auth->checkAuth())
{
die('cannot succeed in checkAuth')
exit;
} else {
include("nocache.php");
}
这是我希望要求身份验证的每个php页面中包含的文件的一部分。我可以正常登录一次,但每当我尝试去另一个需要身份验证的页面时,它会让我再次登录(我在页面底部看到'无法成功'的消息)。
同样,这个解决方案在我的原始网站上工作正常,我复制了所有文件,只更改了数据库服务器/密码 - 它仍然无效。我正在为两者使用相同的虚拟主机。
我在这里做错了什么?或者我该如何进一步调试?
答案 0 :(得分:0)
好的 - 看起来我的webhost在PHP上的会话出现问题(至少对于这个站点而言)。
这是他们尝试过的有效方法。以下是.htaccess文件:
php_value session.gc_probability 1
php_value session.gc_divisor 100
php_value session.gc_maxlifetime 3600
php_value session.save_path /path/to/sessions/folder
希望这有助于其他人!