Php 数组,对于每个不工作的函数

Php 数组,对于每个不工作的函数,php,arrays,variables,foreach,get,Php,Arrays,Variables,Foreach,Get,请有人帮助我,我正在尝试使用数组函数根据复选框的结果给一个总体变量一个正值或负值 复选框的问题是,以下哪种驯鹿存在,因此对于每个正确的驯鹿,我希望给变量$finalvalue一个增量值。然后在末尾留下一个IF函数,说明是否勾选了错误的驯鹿,给出一个递减值,但同时给出正确驯鹿的递增值 我已经附上了下面的代码,每次我使用它时,该值不会按预期增加,或者不是每个正确驯鹿的累积值 谢谢 HTML优先 Which of the following are of Santa's Reindeer?(You c

请有人帮助我,我正在尝试使用数组函数根据复选框的结果给一个总体变量一个正值或负值

复选框的问题是,以下哪种驯鹿存在,因此对于每个正确的驯鹿,我希望给变量$finalvalue一个增量值。然后在末尾留下一个IF函数,说明是否勾选了错误的驯鹿,给出一个递减值,但同时给出正确驯鹿的递增值

我已经附上了下面的代码,每次我使用它时,该值不会按预期增加,或者不是每个正确驯鹿的累积值

谢谢

HTML优先

Which of the following are of Santa's Reindeer?(You can select more than one answer)<br>

<input type="checkbox" name="reindeer" value="Rudolph">Rudolph<br>
<input type="checkbox" name="reindeer" value="Prancer">Prancer<br>
<input type="checkbox" name="reindeer" value="Dancer">Dancer<br>
<input type="checkbox" name="reindeer" value="Ronald">Ronald<br>

<br><br>
<input type="submit" value="Submit">
谢谢您的帮助。


<?php

    $input = $_GET['reindeer'];
    $valid = ["Rudolph","Dancer","Prancer"];

    # Debug input..
    echo 'Raw input data:<pre>';
    var_dump($input);
    echo '</pre>';


    if(is_array($input)){
        foreach($input as $reindeer){
            if(in_array($reindeer, $valid)){
                echo 'user supplied multiple answers and '.$reindeer.' is listed in $valid. </br>';
                $finalvalue = $finalvalue+2;
            } else {
                echo 'user supplied multiple answers and '.$reindeer.' is listed <strong>not</strong> in $valid. </br>';
                $finalvalue = $finalvalue-6;
            }
        }
    } else {
        # This code should never execute unless the user changes the html code.
        if(in_array($input, $valid)){
            echo 'user supplied 1 answer and '.$reindeer.' is listed in $valid. </br>';
            $finalvalue = 2;
        } else {
            echo 'user supplied 1 answer and '.$reindeer.' is listed <strong>not</strong> in $valid. </br>';
            $finalvalue = 0;
        }
    }


    echo $finalvalue;

?>
以下哪项是圣诞老人驯鹿?(您可以选择多个答案)
鲁道夫
普兰塞
舞者
罗纳德


$input=$_GET['reinder']; $valid=[“鲁道夫”、“舞者”、“普兰塞”]; foreach($驯鹿输入){ if(在_数组中($reinder,$valid)){ $finalvalue=$finalvalue+2; }否则{ $finalvalue=$finalvalue-6; } }

请注意html中的括号。将这些括号添加到输入的名称中,使其成为一个数组。因此,生成的代码更加简洁和最少。

if是否应该在foreach中?不幸的是,这个答案返回了以下错误命令,您还有其他建议吗?警告:在第58行的/Applications/XAMPP/xamppfiles/htdocs/php_class/php Project/noteyornice.php中为foreach()提供的参数无效,这意味着输入不是数组。我已经更新了代码来弥补这一点。非常感谢您的帮助,您是正确的,这是一个字符串,我将如何适应这一点在未来?我会简单地输入//$type=string(“鲁道夫”、“舞者”、“普兰塞”)等吗。?非常感谢您的HTML代码,将name=“reindeer”更改为name=“reindeer[]”True,但是用户可以更改HTML代码并发布答案,使其显示您不想显示的关键信息。始终清理用户输入。是否要给出一个示例?他的用例非常简单:使用Firefox或Chrome,检查元素,删除名称中的括号,然后提交结果。即使他的案例非常简单,最好用正确的方法学习,而不是用艰苦的方法。
<?php

    $input = $_GET['reindeer'];
    $valid = ["Rudolph","Dancer","Prancer"];

    # Debug input..
    echo 'Raw input data:<pre>';
    var_dump($input);
    echo '</pre>';


    if(is_array($input)){
        foreach($input as $reindeer){
            if(in_array($reindeer, $valid)){
                echo 'user supplied multiple answers and '.$reindeer.' is listed in $valid. </br>';
                $finalvalue = $finalvalue+2;
            } else {
                echo 'user supplied multiple answers and '.$reindeer.' is listed <strong>not</strong> in $valid. </br>';
                $finalvalue = $finalvalue-6;
            }
        }
    } else {
        # This code should never execute unless the user changes the html code.
        if(in_array($input, $valid)){
            echo 'user supplied 1 answer and '.$reindeer.' is listed in $valid. </br>';
            $finalvalue = 2;
        } else {
            echo 'user supplied 1 answer and '.$reindeer.' is listed <strong>not</strong> in $valid. </br>';
            $finalvalue = 0;
        }
    }


    echo $finalvalue;

?>
Which of the following are of Santa's Reindeer?(You can select more than one answer)<br>

<input type="checkbox" name="reindeer[]" value="Rudolph">Rudolph<br>
<input type="checkbox" name="reindeer[]" value="Prancer">Prancer<br>
<input type="checkbox" name="reindeer[]" value="Dancer">Dancer<br>
<input type="checkbox" name="reindeer[]" value="Ronald">Ronald<br>

<br><br>
<input type="submit" value="Submit">



 $input = $_GET['reindeer'];
 $valid = ["Rudolph","Dancer","Prancer"];


 foreach($input as $reindeer){
      if(in_array($reindeer, $valid)){
            $finalvalue = $finalvalue+2;
       } else {
            $finalvalue = $finalvalue-6;
       }
  }