メッセージシステムを構築して動作を確認しています。すでに があります。私はログインしてボードに投稿することができますが、今は編集できるようにしたいと思います。バックエンドが準備完了です。POSTリクエストを受け取ります。
基本的には、現在ログインしているユーザーが、編集ボタンを表示または非表示にするJavascriptの投稿の投稿者であるかどうかを確認する必要があります。あなたが著者ではない場合にリクエストをブロックするようにユーザーがPHPからログインしているかどうかを知る方法を知っていますが、JSを使用して<template>
から投稿がdinamically生成されるので、ボタンを非表示にすることはできません。
ログインスニペット:
$_SESSION["userid"] = $userid;
編集チェックPHPスニペット(ちょっと擬似コード):
if ($_POST["action"] == "modifypost" && isset($_POST["postid"]) && isset($_POST["content"]))
{
$post = get_post($_POST["postid"]);
if ($post.userid != $_SESSION["userid"])
{
die("you are not allowed");
}
//MySQL queries
}
ポスト動的生成(省略):私はもともと考えていた
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);
}
HTMLからのユーザーIDを使用して変数を<script>
およびに設定するユーザーはコンソールからその変数を手動で設定し、ボタンを表示することができます。
ユーザーが自分のボタンを表示するとどうなるのですか?あなたはサーバー側のリクエストをどうにかしてチェックする必要があります。リクエスト全体が偽造されている場合や、それを作成するためにjsを使用した場合は重要ですか? IMOでは、ユーザーが他のユーザーjs(XSS)を変更し、ユーザー要求が意図されていることを検証するだけで済みます(CSRF)。彼らがコンソールを使ってあなたの目にだけあなたのウェブサイトを変えた場合。それらをさせてください。 – jh1711
もしあなたが 'Post'でそれをチェックするので彼らが変更を保存できないならば、編集ボタンを表示するためにjavascriptを編集しようとしても問題ありません。 –