未授权用户的单独页面或同一页面的不同配置?

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"这些字段。但是您可以将这两种技术结合起来。只需隐藏字段,如果有人进行编辑,服务器必须再次检查是否允许用户进行更改。