1

我的网站有一个登录区域,登录时我设置了一个会话变量$_SESSION['logged_in'] = true

现在我也有很多表单和东西,用户可以输入评论。显然,在我的 PHP 验证中,我只使用 session 变量检查用户是否登录,但我也想要 javascript 验证,因为我可以让用户体验更流畅。

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

那么人们通常如何做我检查用户是否使用javascript登录的那一点呢?IE 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 回答