php中的未知输出

时间:2015-03-30 21:11:37

标签: php html post

我正在尝试从php中的数组中的值创建一个复选框表单,以通过POST提交。这是代码:

<?php 
$check = array('beiber' => 'dumb', 'john' => 'singer', 'michael' =>            'legend', 'lovato' => 'firestarter');
$t = 1;
$name = $t;
foreach($check as $x =>$y){
    $name = $t++;
    echo $name;
    echo ' <input type = "checkbox" name =' . $name . 'value =' . $x . '/>' . $x  . $sp . $y . '<br>';
}
?>
<input name = "submit" type = "submit" value = "submit" /><br>

<?php 
if(isset($_POST['submit'])){
    print_r( $_POST);
}
?>

如果选中所有框,则点击提交后得到的输出是:

Array ( [1value] => on [2value] => on [3value] => on [4value] => on [submit]   => submit )

我的问题是为什么他们有价值&#39; on&#39;以及如何解决它。感谢。

1 个答案:

答案 0 :(得分:1)

您输出了错误的html,将输出行更改为:

echo '<input type="checkbox" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($x) . '" />' . htmlspecialchars($x . $sp . $y) . '<br>';

注意:

  1. 引用属性值
  2. 属性名称之间的空格
  3. htmlspecialchars转义特殊符号