新しいサーバーに移動するサイトがあります。すべてが古いサーバーで正常に機能しました。これはサイトの開始に過ぎないため、かなり必要最低限の内容です。
新しいサーバーに移動すると、ログインしようとしても機能しなくなります。しかし - 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
IS は 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 安定版を新規インストールすると、すべてが緑色に点灯します (データベース接続、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 がインストールされている唯一のサーバーです。彼がそれを削除すると、ログインは機能しました。(他の目的のためにサーバー上で必要です-なぜ/何が原因でログインが機能しなくなるのでしょうか?)