PHP中的非法数组声明?

时间:2010-02-10 09:54:03

标签: php arrays validation

为什么不通过W3C验证器验证:

form.html中的3个变量进入form.php:

  <?php

   $stuff1 = $_POST["stuff1"];//catch variables
   $stuff2 = $_POST["stuff2"]; 
   $stuff3 = $_POST["stuff3"]; 
   $myStuff[0] = $stuff1;//put into array
   $myStuff[1] = $stuff2;
   $myStuff[2] = $stuff3;
  ?>   

4 个答案:

答案 0 :(得分:7)

  

为什么不通过W3C验证器验证:

你可能在这里误解了一些东西。 PHP代码在服务器端生成,并输出HTML(或不输出)。您上面提到的脚本不会传递任何HTML验证器,因为对于验证器,它将为空。 PHP和W3C验证器彼此无关。

如果您收到 PHP 错误消息,请发布。

答案 1 :(得分:0)

似乎还不错,但也尝试一下:

 $stuff1 = $_POST["stuff1"];
 $stuff2 = $_POST["stuff2"]; 
 $stuff3 = $_POST["stuff3"]; 

 $myarray = array();
 $myarray[] = $stuff1;
 $myarray[] = $stuff2;
 $myarray[] = $stuff3;

 print_r($myarray);

另外,请确保将字段放在表单中,例如form标记。

注意 PHP代码不是W3C验证器验证的,它是服务器端生成的代码。

答案 2 :(得分:0)

尝试声明你的数组:

$stuff1 = $_POST["stuff1"];//catch variables
$stuff2 = $_POST["stuff2"]; 
$stuff3 = $_POST["stuff3"]; 
$myStuff = array();
$myStuff[0] = $stuff1;//put into array
$myStuff[1] = $stuff2;
$myStuff[2] = $stuff3;

并注意Pekka's answer关于PHP(服务器端)和HTML(客户端)之间的区别。

答案 3 :(得分:0)

尝试var_dump($_POST)

或一点验证

if (isset() && !empty($_POST["stuff1")) {
    $myStuff[0] = $_POST["stuff1"];
} else {
    echo '$_POST["stuff1"] error';
}

检查所有内容是否正确发送...