2016-09-22 20 views
0

みなさん、こんにちは私は、ユーザーが値を変更した場合、問題が変更入力値から検査した場合の要素

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> 

ユーザーが要素を検査、またはからの入力値を変更した場合、私はchangeing値を停止することができますどのように私に

に警告してい

私はこの

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

試みるが、一つの値だけでは動作している動作していない

+0

$ _POST ['cars']はループしなければならないマルチd配列です – nogad

答えて

1

もちろん、ユーザーがフォームの値を改ざんするのを止めることはできません。すでに作った許容値で比較することができます。選択した値と許可された値に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> 
+0

非常にありがとうございます:) –

関連する問題