2

我想将 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 并将该文件放在与脚本文件相同的目录中。但不幸的是它没有写在文件中。

是什么原因 ?提前致谢

4

4 回答 4

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 目录,创建目录,设置权限,删除文件等。午夜指挥官可用。

于 2014-02-09T10:36:26.997 回答
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";
}
于 2012-07-19T10:51:03.380 回答
1

我认为您正在只读网络空间中编写,检查文件权限和路径

于 2012-07-19T10:51:14.000 回答
0

你可以,检查那个文件夹权限,他们有777权限吗

$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "Bobby Bopper\n";
fwrite($fh, $stringData);
fclose($fh);
于 2012-07-19T10:49:38.427 回答