我希望将HTTP POST数据发送到PHP文件,然后将该数据写入文件。我使用的脚本如下,
<?php
#error_reporting(E_ERROR | E_PARSE);
$msglen=strlen($_POST["msgarea"]);
$msg=$_POST["msgarea"];
$fp = fopen("dinesh.txt", 'w');
fwrite($fp, $msg);
fclose($fp);
echo "Data Written -> $msg";
?>
我在sourceforge中托管此脚本文件。
我刚刚创建了空文件dinesh.txt,并将该文件放在与脚本文件相同的目录中。但不幸的是它没有写在文件中。
是什么原因? 提前致谢
答案 0 :(得分:1)
检查$_POST["msgarea"]
是否为空,并且该文件对于尝试编写该文件的用户是可写的。
当然,请检查日志中的错误。
<?php
error_reporting(E_ALL);
var_dump($_POST["msgarea"]);
$msglen=strlen($_POST["msgarea"]);
$msg=$_POST["msgarea"];
$fp = fopen("dinesh.txt", 'w');
$result = fwrite($fp, $msg);
fclose($fp);
if ($result) {
echo "Data Written -> $result";
} else {
echo "Error";
}
答案 1 :(得分:1)
我认为您正在使用只读网站空间,检查文件权限和路径
答案 2 :(得分:1)
来自:http://sourceforge.net/apps/trac/sourceforge/ticket/2772
通常,不允许写入驻留在项目Web空间中的文件夹和文件。如果需要写入文件系统,则应使用与htdocs处于同一级别的名为persistent的文件夹。
我在电脑上使用:
$ mkdir persistent
$ chmod 0777 persistent
$ scp -r persistent my_account@web.sourceforge.net:/home/project-web/my_project/
并在PHP中设置:
$fp = fopen("../persistent/dinesh.txt", 'w');
它有效!
修改强> 您可以访问SSH控制台4小时(https://sourceforge.net/apps/trac/sourceforge/wiki/Shell%20service)。您可以转到项目的web目录,制作dirs,设置权限,删除文件等。午夜指挥官可用。
答案 3 :(得分:0)
你可以,检查文件夹权限,是否有777权限
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "Bobby Bopper\n";
fwrite($fh, $stringData);
fclose($fh);