「user_id」をクライアント HTML に入れてサーバーに送り返すのは得策ではないと思います。クライアントから送信されたデータをさらに検証する必要があります (いくつかのチェックとフィルタリングを行います)。
クライアントに送信する代わりにセッションを使用することをお勧めしますが、同時に 2 つ以上のデータを編集 (マルチタブ) すると問題が発生するため、セッションといくつかのトリックを使用する必要があります。
この例では、本物user_id
はクライアントに送信されません。
index.php:
session_start();
$edit_session_id = md5(uniqid() . microtime(true));
$_SESSION['edit_' . $edit_session_id] = $user_id;
ajax.js:
var edit_session_id = $('#edit_session_id').val();
$.ajax({
url : "process.php",
method : "POST",
data : {'edit_session_id' : edit_session_id},
cache : false,
success : function(data) {
// do code
}
);
プロセス.php:
session_start();
$edit_session_id = $_POST['edit_session_id'];
if(!isset($_SESSION['edit_' . $edit_session_id]))
{
die('Invalid edit session, please go back & refresh');
}
$user_id = $_SESSION['edit_' . $edit_session_id];
// Do something with user_id
//Clear the editing session
unset($_SESSION['edit_' . $edit_session_id]);