2010-02-10 52 views
0

为什么没有这个验证与W3C验证:在PHP中非法数组声明?

3个变量来自form.html进入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; 
    ?> 
+0

我想你可能需要的密钥和值,后变量数组本身.. – ant 2010-02-10 09:55:37

+4

W3C(html)验证程序不应该看到任何PHP源代码,只有脚本的输出。由于您提供的代码片段不会打印验证器应该看到的任何内容......没有任何内容。 a)发布原始错误消息b)提供负责输出的代码。 – VolkerK 2010-02-10 09:57:53

+0

哦,当然你的对,有一定的区别..那里,但问题是与后面的print_r($ myStuff) – 2010-02-10 10:19:45

回答

7

为什么没有这个验证与W3C验证:

您可能会误解这里的内容。 PHP代码在服务器端生成,并输出HTML(或不)。您的上述脚本不会通过任何HTML验证程序,因为验证程序将为空。 PHP和W3C验证器无关。

如果您收到PHP错误信息,请发帖。

+1

+1 - 我想理解这种差异可能更有用的OP比处理什么是错的他的代码;并使用“上述”(http://dictionary.reference.com/browse/上面提到的,对于你的怀疑者)。 – 2010-02-10 10:00:15

0

这似乎是罚款,但尝试这也:

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

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

print_r($myarray); 

另外,还要确保你把你的域的表单如form标签内。

注意说明php代码不是W3C验证器验证的东西,它是服务器端生成的代码。

+0

是的,你的所有正确的差异造成一些错误...,谢谢! – 2010-02-10 10:21:14

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(客户端)之间的差异。

0

尝试var_dump($_POST)

还是有点验证

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

检查一切都被正确地跨越发送...