1

更新:我找到了原因。这是因为该文件只有回车。用 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"]=> string(4) "Juha" ["antispam"]=> string(1) "4" ["antispamIndex"]=> string(1) "1" ["message "]=> 字符串(4) "测试" ["提交"]=> 字符串(4) "发送" }

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

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

谢谢!

4

2 回答 2

1

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

真是奇怪,那个!

于 2013-10-16T20:56:56.723 回答
0

我建议你使用 echo 和 foreach

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

foreach($arr as $value)

{
echo $value;
}
于 2013-10-16T20:45:36.310 回答