如果更改PHP中inspect元素的输入值?

如果更改PHP中inspect元素的输入值?,php,checkbox,Php,Checkbox,我有个问题 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"

我有个问题

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>

但不起作用(仅对一个值起作用)

当然,您不能阻止用户篡改表单值。您只需将其与您已经创建的允许值进行比较。您可以使用
array\u 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>

添加

$\u POST['cars']是一个多维数组,您必须循环它
<?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>