私はウェブページを持っています。それをmain.phpと呼びましょう。これは、サッカー場とその場に分散している何人かの選手の画像を表示します。ただし、そのページでは、プレーヤーのリストをロードする右側のフレームとしてlist.phpを使用しています。
何が起こるかというと、ユーザーがフィールド上のプレーヤー(main.php)をクリックすると、たとえばゴールキーパー(GK)の画像で、世界中のチームのGKのリストが右側のリストフレーム(リスト)に読み込まれます。 php)。これはajaxを使用することによるものです。
これまでのところ、私たちは良いです。
現在の状況では、セッションがタイムアウトし、ユーザーがフィールドからプレーヤーをクリックすると、右側のリストが読み込まれず、代わりにプレーヤーのリストがリストから消え、「ログインしてください」というメッセージが表示されます。右側のフレーム(list.php)
目的は、セッションがタイムアウトしたときに、Webサイト全体をメインページのindex.phpにリダイレクトすることです。
問題は、「ログインしてください」というメッセージを表示するコードの直前にリダイレクトコードを配置していることです。しかし、何が起こったのかというと、リダイレクトはフレーム内から行われるため、main.phpにフィールドが表示され、list.phpにメインページが表示されることになりました。
これが私が追加したコードです。
$user_id = NSession::get('user_id');
if (!isset($user_id))
{
NSession::removeall();
General::Redirect('index.php');
}
彼らはSmartyを使用しています。ところで、main.phpの先頭に同じコードを追加しました。ユーザーがログインせずにmain.phpにアクセスしようとすると、メインページにリダイレクトされるため、コードは機能します。
nbプロジェクトは私のものではなく、私が働いている会社のものです。セッションのタイムアウト後にユーザーがフィールドからプレーヤーをクリックした場合、どのコードがセッションをチェックしているかわかりません。 「ログインしてください」というメッセージがフレームに表示されます。