私の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*/);' />
- これは、ユーザー名と パスワードが正しい場合
$_SESSION['username']
を設定するには、PHPのアクセス プロセッサファイルへのログインデータを送信するためにlogIntheUser
関数を呼び出します。- また、呼び出した
$_SESSION['username']
場合 は$_SESSION['username']
としてログイン表示updateLoginStatusIndicator
機能は を設定したり、$_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']
が設定されている)いくつかの時間は、ユーザーが正常にログインしていることであるが、まだ第二機能updateLoginStatusIndicator
は「ログインしていません」と表示します。ログインステータスインジケータは時間を計測しません。 updateLoginStatusIndicator
がlogIntheUser
の後に実行されている場合、ログイン状態を適切に更新します。しかし、私はそれを行う方法を知らない。助けてください!
EDIT
私はすなわちのようなコールバックとしての機能を呼び出す:(私のコールバックメソッドが間違っているかもしれない)logIntheUserは(updateLoginStatusIndicatorは())、それはまだ動作しませしませんが。その後、set_time_limit(1);
をupdateLoginStatusIndicator()
機能スクリプトに追加して1秒間遅延させると、動作し始めますが、スクリプトを遅らせるのはベストプラクティスではありません。どうすればいいのですか?updateLoginStatusIndicator()
関数は、logIntheUser()
関数の実行が終了した後にのみ実行されるように、どうすればいいですか。助けてください。
時々ISSETは、変数のサーバーの設定に応じて動作しない、ISSET機能を使用せずにそれをやろうを返すとき
関数を呼び出します。 –@RavinderSingh hmmそのように動作しません。私はそれが関数の実行のタイミングのためだと思います。最初の関数 'logIntheUser'が完全に実行された後に2番目の関数' updateLoginStatusIndicator'が実行されると、このエラーは修正されます。しかし、私は最初の関数 'logIntheUser'を実行する方法を知らないので、2番目の関数' updateLoginStatusIndicator'を最初の関数が完了するのを待ってから実行するようにします。 –
は、logInTheUser関数から何らかの値を返し、この関数が値を返すときにupdateLoginStatusIndicator関数を呼び出します。 –