我们有一个网站,我们正在移动到新服务器。在旧服务器上一切正常。这只是一个网站的开始,所以它非常简单。
移动到我们的新服务器时,尝试登录不再有效。但是 - 根据 debugKit,生成的查询$this->Auth->login()
:
SELECT `User`.`id`, `User`.`name`, `User`.`email`, `User`.`username`, `User`.`password`, `User`.`role`, `User`.`created`, `User`.`modified`
FROM `shopping_main`.`users` AS `User`
WHERE `User`.`username` = 'another'
AND `User`.`password` = '3813dd3a5eeb39c857d56f9ae58ec7f8237e5eb3'
LIMIT 1
正在返回 1 行 - 但如果块失败:
if ($this->Auth->login()) {
$this->Session->setFlash(__('You are now logged in.'));
} else {
$this->Session->setFlash(__('Invalid username or password, try again'));
}
PDO 安装在两者上(相同版本) - 不确定这是否重要,但在此之前我们遇到过奇怪的问题。
全新安装 CakePHP 2.2 stable 时,一切都亮起绿色(数据库连接、modrewrite...等)
我会认为我们的数据或代码......等等有问题,但是 - 它是相同的数据,相同的代码,并且通过它确实返回 1 行这一事实得到验证。
$components
下面是我在 AppController 中的最新数组:
public $components = array(
'DebugKit.Toolbar',
'Session',
'Cookie',
'Auth' => array(
'loginRedirect' => array('controller' => 'dashboard', 'action' => 'index', 'admin'=>true),
'logoutRedirect' => array('controller' => 'users', 'action' => 'login', 'admin'=>true)
)
);
更新:
根据我们的服务器人员的说法,我们遇到问题的服务器是唯一一个安装了 PECL 的服务器 - 当他删除它时,登录工作正常。(我们在服务器上需要它来处理其他事情 - 为什么/什么会导致我们的登录无法正常工作?)