array_values在localhost中工作,但在服务器上什么都不返回?

时间:2013-10-16 20:35:51

标签: php arrays post

更新: 我找到了原因。这是因为该文件只有回车。用CR + LF(\r\n)替换后,它在服务器上正常工作。

原帖:

我刚将我的网站上传到我的网站主机,我发现了一个关于POST数据的奇怪问题。在localhost上,一切正常,但在服务器上出于某种原因,POST数据似乎在处理过程中消失了?

网站将表单中的数据提交到guestbookFormProcessor.php:

<!doctype html>
<html lang="en">
<head>
    <title>Add Guestbook Comment</title>
    <meta charset="UTF-8" />
</head>
<body>

<?php
    var_dump($_POST); // This returns data OK on the server
    // Process POST data
    $unsafeFormData = array_values($_POST);
    var_dump($unsafeFormData); // This returns nothing on the server!
    // anything after this point will not appear on the page, not even echos
?>

</body>
</html>

但是在服务器上根本没有输出任何东西!

如果我添加echo 'Test';,它会显示在页面上,但是如果我在 $unsafeFormData = array_values($_POST);之后添加,那么它会不是 ?!

事实上,我在该行之后添加的任何内容都不会出现在页面上。我还检查了行中的任何奇怪字符,但即使是十六进制编辑器也看起来很正常。可能有什么不对?它似乎与array_values()函数有关,因为发生这种情况:

var_dump($_POST);
array(5){[“name”] =&gt; string(4)“Juha”[“antispam”] =&gt; string(1)“4”[“antispamIndex”] =&gt; string(1)“1”[“message”] =&gt; string(4)“Test”[“submit”] =&gt; string(4)“发送”}

var_dump($unsafeFormData);
(根本没有输出!)

为什么POST数据会在array_values()之后消失?

谢谢!

2 个答案:

答案 0 :(得分:1)

我找到了原因。 php文件只有回车,显然在我正在使用的webhotel上是不够的。当我用CR + NL(\r\n)替换所有CR时,一切正常。

真奇怪,那个!

答案 1 :(得分:0)

我建议你使用echo和foreach

$arr=(5,10,15,20);

foreach($arr as $value)

{
echo $value;
}