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...
如何验证行 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...