gpt4 book ai didi

javascript - 提交时不允许修改隐藏输入

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:25 25 4
gpt4 key购买 nike

我有一个问题,但我现在不知道该如何解释。所以我有一个带有输入类型 = 隐藏和提交按钮的表单:

 <input type="hidden"
name="{{ form_participate.total_amount.name }}"
id="{{ form_participate.total_amount.name }}"
value="{{ form_participate.total_amount.value }}"/>

问题是,当我使用 firebug 访问并删除 type = hidden 时,我输入了一个值,例如 1000,然后我确实提交了这个值,并将其插入到数据库中。我可以禁止这个选项吗?

最佳答案

回答

不能阻止用户临时修改客户端代码(HTML、JavaScript、CSS)。


备选方案

备选方案 #1 - 使用默认值清理

您可以清理和验证服务器端的值。

PHP

<?php
$value = $_REQUEST['myHiddenElement'];

// We make sure $value is a number and it its value is between 0 and 100
if(!is_numeric($value) || $value < 0 || $value > 100) {
// If the value is invalid, we overwrite it with a default value.
// This way, we're sure only valid values are sent to the server.
$value = 0;
}
?>

备选方案 #2 - 返回给用户

如果值无效,您还可以显示错误消息

PHP

<?php 
$value = $_REQUEST['myHiddenElement']

if(!is_numeric($value)) {
if(!isset($_SESSION)) {
session_start();
}
$_SESSION['error'] = 1;
$_SESSION['error_message'] = "The value contained in [whatever input] is not valid.";
header('Location: myForm.php'); // This goes back to the form.
}
?>

在 myForm.php 中:

<?php 
session_start();
// We show a custom error message only if the sesison variable "error" is set.
if(isset($_SESSION['error'])){
echo '<div class="errorMessage">'.$_SESSION['error_message'].'</div>'; // Shows the message to the user.

unset($_SESSION['error']); // unset() destroys the variables.
unset($_SESSION['error_message']);
}
?>

关于javascript - 提交时不允许修改隐藏输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32510272/

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