[ユーザー検証] このアイデアは、ユーザーがログインしているかどうか、抜け穴や問題がないかどうかを検証するために使用されます
この投稿の最終編集日はデフォルトで 2014-05-25 13:31:32考慮されるのは、サーバーが SQL クエリを最小限に抑えることです。
ブラウザを閉じるとSESSIONが無効になるため、代わりにCOOKIEを使用し、ユーザーがログインしているかどうかを検出するために次のメソッドを記述します。
コードは次のとおりです: <br>/**<br> * 初期化、デフォルトでユーザー COOKIE データ検証7#zbphp.com<br>*/<br>public function authCheck()<br>{<br> if (cookie ('uid')) {<br> $uid = cookie('uid');<br> $umd5 = cookie('umd5');<br> $udata = cookie('udata');<br> if (isUid($uid) && isMd5($umd5) && $udata && ($strDecode = authcode($udata, 'DECODE'))<br> $ Strdecode) && $ データ ['UID'] == $ UID) {<br> <br> // 60 秒ごとに SQL をチェックして <br> を検出する必要があります if ($ This- & GT; Time-$ data [' lastactive'] > self::INTERVAL) {<br> if (($rsUser = M('メンバー')->where("mid='$uid'")->getField('mid,uname, pwd,vip,viptime1,viptime2,lastactive,isfbd'))<br> er($rsUser[' email']) == strto lower($data['email'])<br> {<br><br> If($rsUser['isfbd'] == 't ' ){<br> $this->error('あなたのアカウントは禁止されています。管理者に連絡してください。 ');<br>$ this-&gt; resetuser();<br>return; <br>}<br><br>to(' lastactive '、$ this-&gt; time);<br><br> $data['upwd'] = md5($rsUser['pwd'].$data['salt']);<br><br>変更が発生しました。再度ログインしてください。',',U('メンバー! /Index/login?f='.__URL__));<br> 🎜> }<br> }<br><br> $data['lastactive'] = $this->time;<br><br> $this->UserData = $data;<br><br> $strEncode = json_encode ($ data);<br><br> //配置COOKIE默认10天过期<br> cookie('uid',$data['uid']);<br> cookie('umd5',md5($strEncode)) ;<br> cookie('udata',authcode($strEncode,'ENCODE'));<br><br> return;<br> }<br><br> $this->resetUser();<br> }<br>}<br><br>/**<br> * SESSION をすべてログアウト <br> *<br> * @return bool<br>*/<br>public function resetUser()<div class="clear"></div>
ログイン後にコピー