0

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」メソッドで動作させる必要があります =\

4

1 に答える 1

0

サーバーの再起動が必要であることが判明しました。.htaccess ファイルの fileupload コンポーネントをテストするために、次の 2 行を含めました。

php_value upload_max_filesize 9999999999M

php_value post_max_size 9999999999M

その後、上記のように動作がおかしくなり始めたので、サーバーを再起動することにしましたが、次のエラー メッセージが表示されました。

「PHP 警告: XXX バイトの POST コンテンツ長が行 0 の不明な -XXX バイトの制限を超えています」

グーグルで検索すると、ファイルサイズに関係があることがわかったので、値を「9999999999M」から「2147483647」に変更し、サーバーを再起動すると、すべてが正常に機能するようになりました。

このような初歩的なミスで申し訳ありません。私は PHP と Cake にまったく慣れていないので、新しいファイルをアップロードするたびにサーバーを再起動する必要はないと考えていました。

于 2013-05-27T18:49:11.163 に答える