在向现有PHP应用程序添加一些js网格时,我遇到了以下内容......
在网站的一个部分中,我需要向不同的用户角色显示不同的内容。我可以通过PHP应用程序中的一个简单的预构建方法检查他们的角色,但是我需要告诉JS方面角色是什么,以便它可以显示正确的内容。
我的第一个想法是在隐藏的div中将角色写入dom然后检索它以便在JS中使用:
<?php echo '<div id="user_role" style="display:none">5</div>'; ?>
...然后
var user_role = $('#user_role').text();
但显然这不是一个好主意,因为任何有访问权限的人都可以操纵dom中的值并将其设置为他们喜欢的任何值。所以我的问题......
在这种情况下设置用户角色以使用javascript的最佳方式是什么?
答案 0 :(得分:2)
这里真正的答案是用户可以操作的javascript客户端上的任何内容,因此最好只使用php显示特定于服务器端用户的内容。
此外,如果您沿着上面显示的路线往下走,您不需要查看所有代码,您只需使用下面的代码,无需绕过房屋将其添加到dom中。
var user_role <?php echo(5); ?>
答案 1 :(得分:2)
在客户端设置用户角色没有任何问题,只要它仅用于表示目的(例如,更改UI的颜色或隐藏/显示某些容器),并且在客户端更改角色不会导致要显示的其他数据。
不言而喻,用户角色的实际设置 - 以及用户获取或未看到的任何决策 - 都必须在服务器上进行。
答案 2 :(得分:0)
你可以让JQuery在运行时向服务器询问角色需要什么......
$.get('mysite/get_role.php', function(data) {
var user_role = data;
alert('User Role is ' + user_role);
});