检查是否从Javascript设置了$\u会话变量

检查是否从Javascript设置了$\u会话变量,javascript,php,jquery,Javascript,Php,Jquery,我正在建立一个消息系统来学习它是如何工作的,我已经有了 几乎所有的东西。我可以登录并在黑板上发表文章,但现在我希望能够编辑它。后端已准备就绪,它将接收POST请求 基本上,我需要做的是检查当前登录的用户是否是Javascript中某篇文章的作者,以显示或隐藏编辑按钮。我知道如何判断用户是否是从PHP登录的,因此如果您不是作者,它会阻止请求,但我无法隐藏或显示按钮,因为帖子是使用JS从自动生成的 登录代码段: $_SESSION["userid"] = $userid; 编辑检查PHP代码段(类

我正在建立一个消息系统来学习它是如何工作的,我已经有了 几乎所有的东西。我可以登录并在黑板上发表文章,但现在我希望能够编辑它。后端已准备就绪,它将接收POST请求

基本上,我需要做的是检查当前登录的用户是否是Javascript中某篇文章的作者,以显示或隐藏编辑按钮。我知道如何判断用户是否是从PHP登录的,因此如果您不是作者,它会阻止请求,但我无法隐藏或显示按钮,因为帖子是使用JS从
自动生成的

登录代码段:

$_SESSION["userid"] = $userid;
编辑检查PHP代码段(类似于伪代码):

动态生成后(缩写):


我原本想用HTML的
设置一个带有用户ID的变量,但是用户可以从控制台手动设置该变量并显示按钮。

理想情况下,我更愿意将渲染后逻辑放在服务器端

但是,由于您的解决方案侧重于javascript,因此有一个选项使PHP呈现一个javascript变量,该变量告知用户是否是文章作者

例如:

在PHP文件中,在HTML呈现部分,您可以执行以下操作:

<script>var isAuthor = '<?php echo ($post.userid == $_SESSION["userid"])'; ?></script>
var isAuthor='1〕
我最初想用
HTML中的用户ID设置一个变量

是的,这是一个正确的方法。基本上,使用PHP告诉JavaScript哪些帖子实际上属于当前用户

但是,用户可以从控制台手动设置该变量并显示按钮

对。一旦您将信息发送到浏览器,就没有办法保护信息不受用户干涉。这是因为用户可以控制在浏览器中执行的内容。与其将按钮可视性视为一种安全功能,不如将其视为一种方便——一种让用户体验更愉悦的功能


应用程序安全性实际上是在服务器上实施的。只需确保一个用户不允许编辑另一个用户的帖子,并且不信任来自浏览器的内容。验证输入。

如果用户向自己显示按钮,您为什么会在意?无论如何,您需要在服务器端检查请求。如果整个请求都是假的,或者它是使用您的js创建的,这有关系吗?在IMO中,您只需要担心用户更改其他用户js(XSS)和验证用户请求的意图(CSRF)。如果他们仅在他们眼中使用控制台更改您的网站。让他们来吧。如果他们因为你在
Post
上检查而无法保存更改,那么他们是否尝试编辑javascript以显示编辑按钮等也没关系。
function add_post(post) {
  var t = document.querySelector('#historypost');
  t.content.querySelector(".content").innerHTML = post.content;

  var clone = document.importNode(t.content, true);
  document.body.appendChild(clone);
}
<script>var isAuthor = '<?php echo ($post.userid == $_SESSION["userid"])'; ?></script>