プロジェクト

全般

プロフィール

Bug(バグ) #2469

Yuya Watanabe さんが約13年前に更新

h3. 概要 

 ログイン停止にしたメンバで自動ログインにチェックを入れてログインしようとしたときに「Internal Server Error」が発生する. 

 h3. 再現方法 

 # 管理画面のメンバ管理(/pc_backend.php/member/list)でIDが1のメンバのログイン停止を行う 
 ** より具体的には(pc_backend.php/member/reject/id/1)で「有効にする」をクリックする 
 # SNSのログイン画面を開いてIDが1のメンバのメールアドレス及びパスワードの入力と「次回から自動的にログイン」にチェックを入れる 
 ** 「現在、サーバが混み合っているか、メンテナンス中です。」という表示がされる 

 h3. 原因 

 以下の箇所で249行目ではログインが停止されているという理由でログアウト状態となるが,251行目ではフォーム内容を確認し253行目を実行する. 
 この253行目を実行する際に同ファイル184行目でメンバIDを取得するが,249行目ですでにログアウト状態となっていてメンバIDを取得できないためLogicException()が発生する. 

 lib/user/opSecurityUser.class.php 
 <pre> 
  249       $this->initializeUserStatus(); 
  250 
  251       if ($this->getAuthAdapter()->getAuthForm()->getValue('is_remember_me')) 
  252       { 
  253         $this->setRememberLoginCookie(); 
  254       } 
 </pre> 

 <pre> 
  181       else 
  182       { 
  183         $rememberKey = opToolkit::getRandom(); 
  184         if (!$this->getMemberId()) 
  185         { 
  186           throw new LogicException('No login'); 
  187         } 
  188         $this->getMember()->setConfig('remember_key', $rememberKey); 
 </pre> 

 h3. 確認環境 

 OpenPNE3.7.0-dev (master) 
 OpenPNE3.6.0-dev (stable-3.6.x)

戻る