在 Javascript 中通过 PHP 设置确定用户角色
在向现有 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 的最佳方法是什么?
In adding some js grids to an existing PHP application I ran into the following...
In one section of the site I need to display different content to different user roles. I can check for their role with a simple pre-built method n the PHP app, however I need to tell the JS side of things what the role is so it can display the correct content.
My first thought was to write the role to the dom in a hidden div and then retrieve it for use in JS:
<?php echo '<div id="user_role" style="display:none">5</div>'; ?>
then...
var user_role = $('#user_role').text();
But obviously this is not a good idea as anyone with access could manipulate the value in the dom and set it to whatever they like. So my question...
What's the best way to set a user's role for use with javascript in this sort of situation?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这里真正的答案是用户可以在客户端操作 javascript 中的任何内容,因此最好只使用 php.ini 在服务器端显示特定于用户的内容。
另外,如果你沿着上面显示的路线去哪里,你不需要遍历所有代码,你可以简单地使用下面的代码,不需要绕过房子将其添加到 dom 中。
The real answer here is anything on the client side in javascript a user can manipulate, so your best only showing your content specific to users on the server side with your php.
Also if you where to go down the route you where showing above you dont need to go through all that code you could simply use the code below no need to go round the houses adding it to the dom.
在客户端设置用户角色没有任何问题,只要它只是出于演示目的(例如更改 UI 的颜色或隐藏/显示某些容器),并且更改客户端的角色不会导致额外的数据被显示。
不言而喻,用户角色的实际设置以及用户能看到或不能看到什么的任何决定都必须在服务器上进行。
There's nothing wrong with setting the user's role on client side as long as it's just for presentational purposes (like, changing the colours of the UI or hiding/showing certain containers), and changing the role on client side doesn't cause additional data to be shown.
It goes without saying that the actual setting of the user role - and any decisions what the user gets or doesn't get to see - must take place on the server.
您可以让 JQuery 在运行时询问服务器角色需要是什么......
You could have JQuery ask the server at runtime what the role needs to be...