在服务器上的文本文件中写入数据

Writing data in a text file on server

我正在尝试构建一个简单的网页,提示用户根据需要多次点击图像。最终,在用户完成后 s/he 应该单击 link 说 "I'm done" 应该触发服务器写入磁盘一个 sting(假设:"I clicked x times",我可以管理获得)。

我试过:

<a onclick="WriteNGo()" href="next_index.html">I am Done</a>

当然还有:

function WriteNGo() {
    $.ajax({
        type: "POST",
        url: 'php/save.php',
        data: {writeMe: textToWrite}
    });
}

其中 textToWrite 是包含字符串的全局变量。我可以

alert(textToWrite)

它并得到所需的句子。

并在正确的位置添加了 php/save.php:

<?php
    $data = $_POST['writeMe'];
    $f = "../d/data.txt";
    file_put_contents($f,$data,FILE_APPEND);
?>

并做了一个

sudo chmod +777 d

在文件夹中。

我只想得到一个包含我的字符串的文本文件(即 "I clicked x times")。我什至不确定 POST 命令是否会触发 PHP 服务器。

还有一件事:index.html 在根目录中,我目前所在的位置 运行:

php -S localhost:8000

这样应该不会有什么问题。

我还应该说明,字符串曾 一次 被写入,但我无法重现它。

不确定这是否能解决您的问题。也许,尝试这样的事情来查看您的数据可能被写入的位置:

<?php
    $data = $_POST['writeMe'];
    $path = "../d";

    $dir = $path . "/";

    if (!is_dir($dir)) {mkdir($dir, 0755, true);} 

    // A faster alternative to file_put_content
    $f = $dir . "/data.txt";
    $fp = fopen($f, "x+");
    fwrite($fp, $data);
    fclose($fp);
?>