代码之家  ›  专栏  ›  技术社区  ›  Dinesh

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

  •  2
  • Dinesh  · 技术社区  · 13 年前

    我想将POST数据HTTP到一个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 回复  |  直到 13 年前
        1
  •  1
  •   Minras    13 年前

    检查一下 $_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";
    }
    
        2
  •  1
  •   swapnesh    13 年前

    我认为您正在只读Web空间中写作,请检查文件权限和路径

        3
  •  1
  •   Dzwiedziu-nkg    11 年前

    发件人: http://sourceforge.net/apps/trac/sourceforge/ticket/2772

    通常情况下,不允许写入项目web空间中的文件夹和文件。如果您需要写入文件系统,您应该使用名为persistent的文件夹,该文件夹与htdocs位于同一级别。

    我在电脑上使用:

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

        4
  •  0
  •   Hiren Soni    13 年前

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

    $myFile = "testFile.txt";
    $fh = fopen($myFile, 'w') or die("can't open file");
    $stringData = "Bobby Bopper\n";
    fwrite($fh, $stringData);
    fclose($fh);