php - 使用 PHP 脚本在 POST 中发送错误的提交按钮
问题描述
我的 PHP 表单使用多个提交按钮,用于 A/B 处理
有时,即使不是单击的提交按钮,也会传递错误的提交按钮。按钮如下所示:
<form method="post" action="url..." autocomplete="off">
... fields...
<input type="submit" name="UpdateExit" value="Exit" />
<input type="submit" name="UpdateSave" value="Save" />
<input type="submit" name="InsertNew" value="Insert new" />
<input type="submit" name="Delete" value="Delete" />
<input type="button" name="Cancel" value="Cancel" />
</form>
有时var_dump($_POST)
两者都显示UpdateExit
,UpdateSave
即使我点击了InsertNew
!不用说它会弄乱输出。然后发送“右键”。
我将此行为范围缩小到 webkit 浏览器,并且在清除浏览器缓存后第一次使用该表单时,它似乎“恢复正常”。这是经验性的,我不能说它与 PHP 或 HTML 相关。但我在一天的大部分时间里一直在努力解决这个问题,并没有发现关于 SO 或其他地方的信息:(
有人听说过/遇到过类似的行为吗?
解决方案
尝试:
<form method="post" action="url..." autocomplete="off">
... fields...
<input type="submit" name="UpdateExit" value="Exit" />
<input type="submit" name="UpdateSave" value="Save" />
<input type="submit" name="InsertNew" value="Insert new" />
<input type="submit" name="Delete" value="Delete" />
<input type="submit" name="Cancel" value="Cancel" />
</form>
像处理任何其他提交按钮一样处理取消逻辑。
PHP 表单处理程序逻辑:
<?php
if (isset($_POST['UpdateExit'])) {
//Do something based on Update and Exit was used
}
elseif (isset($_POST['UpdateSave'])) {
//Do something based on Update and Save was used
}
elseif (isset($_POST['InsertNew'])) {
//Do something based on Insert New was used
}
elseif (isset($_POST['Delete'])) {
//Do something based on Delete was used
}
else {
//Do something because Cancel was used...
}
?>
推荐阅读
- r - 创建一个具有特定名称的列表(使用assign)并将值放入R中
- javascript - 'Promise 类型的参数
- []' 不可分配给“SetStateAction”类型的参数
- '
- []' 不可分配给“SetStateAction”类型的参数
- php - Redis 限制 Laravel 作业“尝试次数过多或运行时间过长”
- amazon-web-services - 网关 V2 API 的 AWS websocket $connect 路径的返回对象要求是什么
- google-chrome - 如何在控制台区域隐藏新的 Chrome v84.0.4147.89 Issues Detected 消息?
- c# - IAsyncInterceptor 陷入递归循环
- python - 如何通过异常值检测方法在周期性或基于序列的数据上生成作为异常值的脉冲以进行实验?
- java - 如何在我的 Android 应用中实现 7 天免费试用期的年度订阅的“帐户保留”状态?
- sql - Vb.net 函数不返回 SQL Server 存储过程结果
- python - 将 numpy 数组转换为 html img 标签的 src 可读的字节串