无法在sourceforge中使用PHP写入文件

时间:2012-07-19 10:43:01

标签: php fwrite

我希望将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 个答案:

答案 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);