我正在添加一些服务器端表单验证(使用 php),以防我网站的一位用户关闭了 javascript。在一个表单上,有 10 个单独的输入字段可以更改。有人可以告诉我哪种协议会使用更少的系统资源吗?首先,我编写了一些 mySQL 变量来检查用户的当前设置,并将这些与发布的设置进行比较。如果所有 10 个发布的值都与当前值相同,则不要更新数据库,否则更新数据库:
$login_id = $_SESSION['login_id'];
$sql1 = mysql_fetch_assoc(mysql_query("SELECT value1 FROM login WHERE login_id =
'$login_id'"));
$sql1a = $sql1['value1'];
// Eight More, then
$sql10 = mysql_fetch_assoc(mysql_query("SELECT value10 FROM login WHERE login_id =
'$login_id'"));
$sql10a = $sql10['value10'];
$Value1 = $_POST['Value1'];
// Eight More, then
$Value10 = $_POST['Value10'];
//Other validations then the following
if (($sql1a == $Value1)&&($sql2a == $Value2)&&.......($sql10a == $Value10)) {
echo "<script>
alert ('You haven't made any changes to your profile');
location = 'currentpage.php';
</script>";
}
else {
$sqlUpdate = mysql_query("UPDATE login SET value1 = '$Value1',....value10 = '$Value10'
WHERE login_id = '$login_id'");
echo "<script>
alert ('Your profile has been updated!');
location = 'currentpage.php';
</script>";
}//End php
或者只使用用户发布的值(保留 $_POST 变量)并避免使用比较行检查是否更便宜: (($sql1a == $Value1)&&($sql2a == $Value2)&&... ....($sql10a == $Value10)) 然后直接去
//Other validations then the following
$sqlUpdate = mysql_query("UPDATE login SET value1 = '$Value1',....value10 = '$Value10'
WHERE login_id = '$login_id'");
echo "<script>
alert ('Your profile has been updated!');
location = 'currentpage.php';
</script>";
感谢您对此的任何意见!