未授权用户的单独页面或同一页面的不同配置?
A separate page for unauthorized users or different configurations of the same page?
我正在使用 HTML、CSS、Javascript、Jquery、PHP 等技术制作一个活动网站。我从 PHP 中的 RESTful 服务检索数据。
有一个单独的活动页面,可供实际目标受众和组织者查看,他们可以在此页面上编辑活动的详细信息。当组织者打开页面时,他应该会看到用于编辑活动详细信息的选项。但是这些选项不应该对其他用户可见。除了这些选项,组织者和其他用户的页面视图是相同的。
我的问题是我应该使用 Javascript/Jquery 隐藏这些选项吗?或者我应该为这个活动页面的每个版本都有单独的页面,并根据他是否是组织者来引导用户?哪个更好,为什么?
在php中您将知道当前用户是否是组织者。只需在响应中发回一个变量,例如 is_organizer: 1 然后您就可以根据用户确定要显示的内容。
如果 html 输出给用户的结果没有太大差异,那么此方法比使用完全不同的视图更可取,因为您可以保持代码干爽并且没有重复的相同标记。
我假设您已经检查用户是否是组织者,然后才能保存对事件的更改。如果不是,你绝对应该这样做。
更新
这里是根据您最近的评论提供的更多信息。
如果您正在使用 jQuery 进行 ajax 调用并从 REST api 获取数据,我会做这样的事情(请耐心等待请记住,这是伪代码):
$.ajax({
url: "event-data.php"
}).done(function(response) {
html = "";
//loop over events
foreach response.events as event
//add event html
eventHtml = "<div class='event'>" + event.name + "</div>";
//if organizer add edit tools
if response.is_organizer
eventHtml += "<div class='edit-controls'>...</div>";
//concat html string
html += eventHTML;
//insert html to dom
$('#content').html(html);
});
我不知道您是如何将 html 插入到 dom 中的,但这种方式只是您如何根据用户角色构建 html 的示例.
附带说明一下,我建议对此类内容使用前端框架。这是一个不错的列表:
https://github.com/showcases/front-end-javascript-frameworks
你应该使用 Php。
如果你使用Jquery隐藏这些字段,每个人都可以轻松地"unhide"这些字段。但是您可以将这两种技术结合起来。只需隐藏字段,如果有人进行编辑,服务器必须再次检查是否允许用户进行更改。
我正在使用 HTML、CSS、Javascript、Jquery、PHP 等技术制作一个活动网站。我从 PHP 中的 RESTful 服务检索数据。
有一个单独的活动页面,可供实际目标受众和组织者查看,他们可以在此页面上编辑活动的详细信息。当组织者打开页面时,他应该会看到用于编辑活动详细信息的选项。但是这些选项不应该对其他用户可见。除了这些选项,组织者和其他用户的页面视图是相同的。
我的问题是我应该使用 Javascript/Jquery 隐藏这些选项吗?或者我应该为这个活动页面的每个版本都有单独的页面,并根据他是否是组织者来引导用户?哪个更好,为什么?
在php中您将知道当前用户是否是组织者。只需在响应中发回一个变量,例如 is_organizer: 1 然后您就可以根据用户确定要显示的内容。
如果 html 输出给用户的结果没有太大差异,那么此方法比使用完全不同的视图更可取,因为您可以保持代码干爽并且没有重复的相同标记。
我假设您已经检查用户是否是组织者,然后才能保存对事件的更改。如果不是,你绝对应该这样做。
更新
这里是根据您最近的评论提供的更多信息。
如果您正在使用 jQuery 进行 ajax 调用并从 REST api 获取数据,我会做这样的事情(请耐心等待请记住,这是伪代码):
$.ajax({
url: "event-data.php"
}).done(function(response) {
html = "";
//loop over events
foreach response.events as event
//add event html
eventHtml = "<div class='event'>" + event.name + "</div>";
//if organizer add edit tools
if response.is_organizer
eventHtml += "<div class='edit-controls'>...</div>";
//concat html string
html += eventHTML;
//insert html to dom
$('#content').html(html);
});
我不知道您是如何将 html 插入到 dom 中的,但这种方式只是您如何根据用户角色构建 html 的示例.
附带说明一下,我建议对此类内容使用前端框架。这是一个不错的列表:
https://github.com/showcases/front-end-javascript-frameworks
你应该使用 Php。 如果你使用Jquery隐藏这些字段,每个人都可以轻松地"unhide"这些字段。但是您可以将这两种技术结合起来。只需隐藏字段,如果有人进行编辑,服务器必须再次检查是否允许用户进行更改。