基于PHP会话变量的Javascript表单验证

时间:2013-03-28 10:29:45

标签: php javascript validation

我有一个我网站的登录区域,登录后我设置了一个会话变量$_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

1 个答案:

答案 0 :(得分:1)

  • 您当然可以通过AJAX检查用户权限(例如使用JSON),但这会提供一些额外的延迟。

  • 您可以像这样写一个全局JS范围的值:

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

    然后你可以查看document.mysite.userlogged变量。

  • 您还可以在PHP中设置cookie,可以使用JavaScript获取。要在JS中正确获取cookie,请参阅:Javascript getCookie functions

  • 如果您不想注入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">并动态生成它,但要注意缓存!

如果你想要个性化单个块,我个人会去data-XXX属性,如果你在JS中多次检查记录条件,我会去全局JS变量。