PHP 用于更新数据库中现有行的表单验证服务器端

PHP form validation server-side for updating an existing row in a database

如何验证行 ID 是要更新的正确行 ID?我想我可能完全采用了错误的方法,因为这似乎并不正确。

我正在会话中存储我的行 ID。以及在隐藏输入中发送它。然后在 validate.php 中进行检查。这工作正常,但使用会话删除了在同一浏览器会话中编辑多个页面的能力。我对如何验证行 ID 有点困惑。

数据库Table

id - name
1 - Apple
2 - Orange

每一行都有自己的带有编辑表单的页面

<?php session_start(); $_SESSION['id'] = X; ?>
<form action="/validate.php" method="post">
 <input type="hidden" name="id" value="X">
 <input type="text" name="name" value="">
 <input type="submit" value="submit">
</form>

validate.php

session_start(); 
$session_id = $_SESSION['id'];
$name = $_POST['name'];
$id = $_POST['id'];

if ($session_id == $id){
 updateRow($name,$id); // send args to another function to do the sql logic.
} else {
 var_dump('mis-match id');
}

好吧,我可以建议,为什么要创建一个 json 格式 session['IDs'].. 存储不同的多个 ID.. JSON 有一个键值对,因此在您的表单中创建一个标识符,就像在隐藏输入中一样,以在您的 validate.php... 或者,如果这更难,请不要在会话中存储 ID...