更新:
我找到了原因。这是因为该文件只有回车。用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()之后消失?
谢谢!
答案 0 :(得分:1)
我找到了原因。 php文件只有回车,显然在我正在使用的webhotel上是不够的。当我用CR + NL(\r\n
)替换所有CR时,一切正常。
真奇怪,那个!
答案 1 :(得分:0)
我建议你使用echo和foreach
$arr=(5,10,15,20);
foreach($arr as $value)
{
echo $value;
}