如果改变了PHP中inspect元素的输入值



我有一个问题

if(isset($_POST['submit'])) {$cars = $_POST['cars']; echo $cars;}
<form>
<input type="checkbox" name="cars[]"  value="1" />
<input type="checkbox" name="cars[]"  value="2" />
<input type="checkbox" name="cars[]"  value="3" />
<input type="checkbox" name="cars[]"  value="4" />
<button>add</button>
</form>

如果用户更改了inspect元素的输入值,或者如果用户更改了值,它会提醒我,我如何停止更改value ?

我尝试的解决方案是

$allowe = ['1','2','3','4'];
if(in_array($_POST['cars'],$allowe)) {echo $_POST['cars'];}

但不工作(只对一个值有效)。

当然,您不能仅仅阻止用户篡改表单值。你可以把它和你已经设定的允许值进行比较。您可以对所选值和允许的值使用array_intersect

<?php
$allowed = ['1','2','3','4'];
if(!empty($_POST['cars'])) {
    $selected = $_POST['cars'];
    $compare = array_intersect($selected, $allowed);
    if(!empty($compare)) {
        echo 'values selected: ', implode(', ', $compare);
        // foreach($compare as $value) {
            // echo $value;
        // }
    }
}
?>
<form method="POST">
    <input type="checkbox" name="cars[]"  value="1" />
    <input type="checkbox" name="cars[]"  value="2" />
    <input type="checkbox" name="cars[]"  value="3" />
    <input type="checkbox" name="cars[]"  value="4" />
    <button>add</button>
</form>

相关内容

最新更新