Запись данных в текстовый файл на сервере - PullRequest
1 голос
/ 07 апреля 2019

Я пытаюсь создать простую веб-страницу, где пользователю предлагается нажимать на изображение столько раз, сколько необходимо.В конце концов, после того, как пользователь закончил, он / она должен щелкнуть ссылку с надписью «Я закончил», которая должна заставить сервер записать на диск строку (скажем, «Я нажал х раз», которую мне удалось получить).

Я пытался:

<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

в папке.

Я хочу получить только текстовый файл, содержащий мою строку (т.е. "Я щелкнул x раз").Я даже не уверен, что команда POST запускает сервер PHP.

Еще одна вещь: index.html находится в корневом каталоге, где я сейчас работаю:

php -S localhost:8000

Итакчто не должно быть никаких проблем.

Я должен также заявить, что было один раз, когда строка была написана, хотя я не могу воспроизвести это.

1 Ответ

0 голосов
/ 08 апреля 2019

Не уверен, что это может решить вашу проблему. Может быть, попробуйте что-то вроде этого, чтобы увидеть, где могут быть записаны ваши данные:

<?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);
?>
...