CakePHP でこの奇妙な問題に直面しています。自分の Web サイトの管理にローカル (/users/login) でログインしようとすると、ユーザー名とパスワードを入力して問題なく動作しますが、リモート サーバーにアップロードした後、同じコード、sambe データベースはユーザーのログインを許可しません。ユーザー名/パスワードが無効であると表示されますが、何が起こっているのかを把握しようとして数時間後、 FormAuthenticate からの認証メソッド内の変数$requestが見つかりました。 php は基本的に空で、次のようにリモート サーバーに送信されます。
object(CakeRequest) {
params => array(
'plugin' => null,
'controller' => 'users',
'action' => 'login',
'named' => array(),
'pass' => array()
)
data => array()
query => array()
url => 'users/login/'
base => ''
webroot => '/'
here => '/users/login/'
}
ただし、同じページをローカルで実行すると、次のように返されます。
object(CakeRequest) {
params => array(
'plugin' => null,
'controller' => 'users',
'action' => 'login',
'named' => array(),
'pass' => array()
)
data => array(
'User' => array(
'password' => '*****',
'username' => 'admin'
)
)
query => array()
url => 'users/login/'
base => ''
webroot => '/'
here => '/users/login/'
}
これを引き起こしている可能性のあるものを見つけようとしましたが、まだ運がありません。CakePHP は初めてなので、何か不足している可能性があります。ありがとう!!
更新#1、これが私の UserController::login メソッドです
public function login() {
$this->layout = 'default_admin';
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}
}
更新 #2: クロムの開発者ツールを使用してフォーム メソッドを「投稿」から「取得」に変更し、次に UserController::login() で次のように変更しました: ... if ($this->request-> is('get')) { ...そしてそれはうまくいきましたが、「post」メソッドで動作させる必要があります =\