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