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()。助けてください。