gpt4 book ai didi

php - 在 php 中只运行一次更新查询

转载 作者:行者123 更新时间:2023-12-01 00:50:16 24 4
gpt4 key购买 nike

是否可以只运行一次更新查询,这里我有一个链接或按钮,如果他点击他的个人资料,他的个人资料将自动更改(更新)并将他带到 myaccount.php 页面。一切都很好,工作正常,但主要问题发生在重新加载同一页面(myaccount.php)和他的个人资料每次更新时。但我希望他的个人资料仅在他单击链接或该按钮一次时才更改...我将链接设置为

<a href='myaccount.php.php?age =$age && status= $status' target='_blank' style='color:#E07707;font-weight:bold;'>Update Profile</a></div></div><br>

我将 myaccount.php 上的更新查询设置为:

  if(($age== '') || ($location= '') || ($status= ''))
{
$newquery1 = "update $tabl_u something...................... where id='$id'";
}

没有提交按钮没有其他更新数据事件,但只能通过 url 或链接单击我传递了一些更新数据的 id,我希望我的问题是在我身边完成的,如果我遗漏了什么或希望你能理解缺少请让我知道...随时问任何关于我的问题..plz帮助我真的需要帮助....提前致谢!

最佳答案

您永远不应该在 GET 请求中进行任何数据更改。如 HTML 4 和 HTTP 规范所述

If the processing of a form is idempotent (i.e. it has no lasting observable effect on the state of the world), then the form method should be GET. Many database searches have no visible side-effects and make ideal applications of query forms.

If the service associated with the processing of a form has side effects (for example, modification of a database or subscription to a service), the method should be POST.

例如,如果用户有一个预加载页面上所有 url 的“网络加速器”,会发生什么情况?

您还应该检查请求是否确实来自您网站上的用户,否则您很容易打开大门 CSRF漏洞。

话虽如此,修复您想要的内容的常用方法是,在更新数据库中的用户状态后,您应该发出重定向到非修改页面。

基页 -> 点击更改链接 -> 更改数据库中的状态并再次重定向到基页

<?php
if(($age== '') || ($location= '') || ($status= '')) {
mysqli_query(/* update whatever */);
header('Location: myaccount.php');
exit;
}

如果他刷新页面,他就在基本页面上,所以它不会改变任何东西。如果他在浏览器中按“后退”,他也会返回到页面基础(发出重定向的页面不会保存在浏览器历史记录中)。

关于php - 在 php 中只运行一次更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634391/

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