1

サイトのログイン領域があり、ログイン時にセッション変数を設定しました$_SESSION['logged_in'] = true

今では、ユーザーがコメントを入力できるフォームやものもたくさんあります。明らかに、私の PHP 検証では、セッション変数を使用してユーザーがログインしていることを確認しますが、ユーザー エクスペリエンスをそのように滑らかにすることができるため、JavaScript 検証も必要です。

$("body").on("click", ".submit", function(e){
    e.preventDefault();
    if (user == logged in){
        ...AJAX call to php file....
    }
})

では、JavaScript を使用してユーザーがログインしていることを確認する部分は、一般的にどのように行われているのでしょうか。すなわち if user == logged in

4

1 に答える 1

1
  • もちろん、AJAX (JSON など) を使用してユーザーのアクセス許可を確認することもできますが、これには追加の遅延が発生します。

  • 次のように、グローバル JS スコープに値を書き込むことができます。

    if ( userIsLogged() ) { echo "<script>document.mysite.userlogged = true;</script>"; }

    その後、document.mysite.userlogged 変数を確認できます。

  • PHP で Cookie を設定することもできます。これは JavaScript で取得できます。JS で Cookie を適切に取得するには、以下を参照してください: Javascript getCookie 関数

  • JS コードを挿入したくない場合は、次のような属性を設定できます。

    <div id="comments" data-logged="<?php echo $isLogged; ?>"> ... </div>

    そして、jQuery で取得します。

    if ( $("#comments").attr('data-logged') == 1 ) {

  • 次のようなJSファイルを生成することにより、ページ全体にログ/ログなしの特定の機能を提供できます。<script type="text/javascript" src="http://yoursite.com/somefile.php">動的にphpで生成しますが、キャッシュに注意してください!

個人的には、単一のブロックをパーソナライズする場合は data-XXX 属性に移動し、JS でログに記録された状態を何度もチェックする場合はグローバル JS 変数に移動します。

于 2013-03-28T10:35:46.587 に答える