-1

私の現在のコードは長くて反復的です。投稿された変数をループして、 isset() 関数を使用して設定されているかどうかを確認する方法はありますか?

これが私のコードです:

$item_name = $_POST['item_name'];
$quantity = $_POST['qty'];
$model = $_POST['mdl'];
$weight = $_POST['wgt'];
$repornew = $_POST['ron'];
$date = $_POST['dob'];
$spec = $_POST['spc'];
$description = $_POST['desc'];
//retreive all values posted by user

if(isset($item_name) || isset($quantity) || isset($model) || isset($weight) || isset($repornew) || isset($date) || isset($spec) || isset($description)){

//send error back to user
}

問題を解決するために、配列を使用したり、JSON を使用したりすることは良い考えでしょうか?

私は何をする必要があるかについての一般的な考えを理解していますが、実装として何を使用するかは私を悩ませているものです.

乾杯

4

3 に答える 3

1
foreach ($_POST as $key => $value) {
    // ...
}
于 2012-09-25T16:37:58.093 に答える
1

POST 変数をループして、それらが送信されたかどうかを確認するには:

$vars = array('item_name','qty','mdl','wgt','ron','dob','spc','desc');
$ok = 1;
foreach ($vars as $value) {
    if (!isset($_POST[$value]])) $ok = 0;
}

if (!$ok) echo 'Not everything is set!';
else echo 'Alright! Everything\'s right!';
于 2012-09-25T16:41:32.223 に答える
1

これを行う別の方法:

$required_keys = array('keys','you','require');
$entered_keys = array_keys($_POST);

if (count(array_diff($required_keys,$entered_keys)) == 0) {
  // everything entered
} else {
  // something missing
}
于 2012-09-25T16:42:44.583 に答える