Thinkphp プロジェクトで奇妙な現象が発生しました。
ローカル環境でログインをクリックした後、バックエンドに正常に入りました。
仮想空間 Web サイトでは、ログインをクリックした後、バックエンドに入ることができませんでしたが、エラーは報告されず、点滅しました。
追跡 しばらくすると、次のステートメントも実行されました:
$this->display('login');
public function login() {
ログインに関することではないと思いますが、コンテキストを見てみましょう
バックグラウンドでセッションを判断するためのコードはありますか?それを削除して、ログインできるかどうかを確認してください
クリックしてログインした後のページジャンプコードは何ですか?
すごいです
!empty($_SESSION[C('SESSION_ADMIN_NAME')]) が true であり、!empty($_SESSION[C('SESSION_ADMIN_ID')]) も true であり、結果は両方で実行されることを追跡しました。ローカル空間と仮想空間 ステートメントへ:
public function index() { if (!empty($_SESSION[C('SESSION_ADMIN_NAME')]) && !empty($_SESSION[C('SESSION_ADMIN_ID')]) && strtolower(ACTION_NAME) != 'logout') { $this->redirect("Index/index"); } $this->display('login'); } /** * 登录判断 */ public function login() {
私は間違っています。!empty($_SESSION[C('SESSION_ADMIN_NAME')]) は false、!empty($_SESSION[C('SESSION_ADMIN_ID')] ) も false です。つまり、2 つの SESSION が空です
!empty($_SESSION[C('SESSION_ADMIN_NAME')]) && !empty($_SESSION[C('SESSION_ADMIN_ID')]) && ステートメントを削除すると、
が残ります。
$this->display('login');
クリックしてログインした後のページ ジャンプ コードは何ですか?
訂正: [ログイン] をクリックすると、ページはまず http://.../Login/login.htm にジャンプします
その後、自動的に http://.../Index/index.htm にジャンプします
最後に、自動的に http://.../Home/Login/index.htm (ログイン ページ) にジャンプします
if (strtolower(ACTION_NAME) != 'logout') { $this->redirect("Index/index"); }... ...
managerLibActionHomeLoginAction.class.php
$this->display('main'); } public function main() { $this->display('center'); }
ランタイム ディレクトリをクリアして再試行してください
public function logout() {
が実行される場合、明らかに URL が間違っています
logout はログアウトすることです。
Runtime ディレクトリをクリアして再試行してください
public function logout() {
が実行される場合、明らかに URL が間違っています
logout はログアウトすることです。
Runtime ディレクトリをクリアして再試行してください
public function logout() {
が実行される場合、明らかに URL が間違っています
logout はログアウトすることです。
public function logout() { session_destroy(); //cjq add $fp = fopen('./qerr1f.txt','w+'); fwrite($fp,"ok"); fclose($fp); $this->redirect('Login/index'); }
テスト ページを更新し続けて時間が出力されるかどうかを確認し、時間が変化しているかどうかを確認します。
時間が変わり続ける場合は、サーバーがセッションを構成していません
<?phpsession_start();if(empty($_SESSION['time'])){ $_SESSION['time'] = time();}echo $_SESSION['time'];?>
テスト ページを更新し続けて時間が出力されているかどうかを確認し、時間が変化しているかどうかを確認してください。
時間が変わり続ける場合は、サーバーがセッションを適切に構成していません
<?phpsession_start();if(empty($_SESSION['time'])){ $_SESSION['time'] = time();}echo $_SESSION['time'];?>
<?phpecho $_SESSION[C('SESSION_ADMIN_NAME') ? $_SESSION[C('SESSION_ADMIN_NAME') : "NULL";?>
2 つの環境の出力の違いを見てください。このように手がかりを追っていけば出てきます