gpt4 book ai didi

php - 哪个协议(protocol)会少 "expensive"?

转载 作者:行者123 更新时间:2023-11-29 08:18:56 25 4
gpt4 key购买 nike

我正在添加一些服务器端表单验证(使用 php),以防我网站的用户之一关闭了 javascript。在一种表单上,有 10 个可以更改的单独输入字段。有人可以告诉我哪种协议(protocol)会使用更少的系统资源吗?首先,我编写了一些 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>";

感谢您对此的任何意见!

最佳答案

如果我理解正确,您的问题是性能检查配置文件是否有修改是否可以。对我来说,在检查了您的代码之后,这不仅仅是性能......

  • 让我们从性能开始:据我所知,MySQL 查询比基本的 PHP 比较慢,这是事实 - 但在这种规模上,我真的认为这并不重要。我们正在讨论两个非常基本的查询,它们不会处理大量数据。
  • 让我们考虑一下最终用户将看到什么(UX):在第二种情况下,用户不会得到最准确的反馈来告诉他/她没有进行任何修改。在配置文件修改屏幕上,我认为这可能不是故意的,因此我会告诉您我们没有修改任何内容。 (此外,执行不必要的 UPDATE 查询并不是最优雅的。)
  • @aehiilrs 说得对,请注意该评论。 这种 MySQL 使用方式对安全性特别不利 - 如果您继续这样做,您将在 PHP 代码中创建很多安全漏洞。而且这些漏洞很容易被发现和利用,所以请,仔细看看替代方案,从前面提到的 PDO 开始。任何一本好的 PHP 书籍都会为您指明方向。您还可以在 StackOverflow 上查看精彩的问答:How can I prevent SQL injection in PHP?
  • 我想知道像您一样尝试更新用户界面是否是一个好主意 - 我强烈希望加载另一个 PHP 而不任何 <script>输出中的魔力。在 PHP 结果中,您始终可以显示类似 CSS 样式的状态栏之类的内容来显示此类信息。

关于php - 哪个协议(protocol)会少 "expensive"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19986917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com