ajax-php データベースのホームページにログイン ステータス インジケーター div があります。クリックされたログイン ボタンは 2 つのことを行います。
<input value="Login" type="button" onclick='logIntheUser(/*function to process login request*/);updateLoginStatusIndicator(/*function to update login status in login staus indicator div*/);' />
- ユーザー名とパスワードが正しいかどうか
logIntheUser
を設定するために、ログイン データを php アクセス プロセッサ ファイルに送信する関数を呼び出します。$_SESSION['username']
- また、設定されているかのようにログイン済みを表示するか、設定されていない場合は「ログインしていません」
updateLoginStatusIndicator
と表示する関数も呼び出します。$_SESSION['username']
$_SESSION['username']
$_SESSION['username']
updateLoginStatusIndicator
関数で実行されるコントローラーコードは次のとおりです。
/*===login status indicator/updater===*/
if(isset($_REQUEST['change-login-indicator']))
{
if(!isset($_SESSION))
{
session_start();
}
if(isset($_SESSION['username']))
{
echo 'Logged in as:'.$_SESSION['username'];
}
else
{
echo 'not logged in';
}
ここでの問題は、ユーザーが正常にログインしている (つまり$_SESSION['username']
、設定されている) ときがありますが、それでも 2 番目の機能updateLoginStatusIndicator
が「ログインしていません」と表示することです。ログイン ステータス インジケータは毎回機能しません。updateLoginStatusIndicator
の後に を実行すると、logIntheUser
ログイン ステータスが適切に更新される可能性があります。しかし、私はそれを行う方法がわかりません。助けてください!
編集
logIntheUser(updateLoginStatusIndicator()) のように関数をコールバックとして呼び出すと、まだ機能しません (コールバック メソッドが正しくない可能性があります)。次に、関数スクリプトに追加set_time_limit(1);
してupdateLoginStatusIndicator()
1 秒間遅延させると、機能し始めますが、スクリプトを遅延させるのはベスト プラクティスではありません。updateLoginStatusIndicator()
関数の実行が終了した後にのみ関数が実行されるように、遅滞なく機能させる方法を教えてくださいlogIntheUser()
。助けてください。