Ошибка при записи данных в файл в другой папке

Обсуждение других вопросов связанных с веб-разработкой
RusTaylor
Сообщения: 1
Зарегистрирован:
02 сен 2018, 22:12

Ошибка при записи данных в файл в другой папке

RusTaylor » 02 сен 2018, 22:18

при таком коде:
<?php
$result = null;
$text = $_POST['text'] ?? '';

if (!empty($text)) {
    $datetime = date(DATE_ATOM);
    $isWrote = (bool) file_put_contents(
        __DIR__ . '../private/feedback.txt',
        $datetime . PHP_EOL . $text . PHP_EOL . PHP_EOL,
        FILE_APPEND
    );
    if ($isWrote === false) {
        $result = 'Не удалось отправить сообщение, попробуйте ещё раз.';
    } else {
        $result = 'Ваше сообщение успешно отправлено!';
    }
}
?>
<html>
<head>
    <title>Обратная связь</title>
</head>
<body>
<div style="text-align: center">
    <h1>Форма обратной связи</h1>
    <?php if ($result !== null): ?>
    <div><b><?= $result ?></b></div><br>
    <?php endif; ?>
    <form action="feedback.php" method="post">
        <label for="text">Введите ваш текст:</label><br>
        <textarea name="text" id="text" cols="55" rows="5"></textarea><br>
        <input type="submit" value="Отправить">
    </form>
</div>
</body>
</html>
Появляется ошибка:
Warning: file_put_contents(D:\OSPanel\domains\myproject.loc\www../private/feedback.txt): failed to open stream: No such file or directory in D:\OSPanel\domains\myproject.loc\www\feedback.php on line 10
Разбираюсь уже несколько часов, не могу понять, почему он не может записывать данные в другую папку и как сделать чтобы записывал?
Заранее спасибо за помощь!
Последний раз редактировалось DelphinPRO 03 сен 2018, 14:08, всего редактировалось 1 раз.
Причина: Используйте, пожалуйста bb-теги для оформления сообщений
Аватара пользователя
DelphinPRO
Сообщения: 803
Зарегистрирован:
01 фев 2012, 17:27
Откуда: Самара
Контактная информация:

Re: Ошибка при записи данных в файл в другой папке

DelphinPRO » 03 сен 2018, 14:11

В сообщении об ошибке ясно видно, что путь неправильный:
D:\OSPanel\domains\myproject.loc\www../private/feedback.txt
Не хватает слеша после www.

Плюс, я бы рекомендовал вам разворачивать относительные пути в абсолютные функцией realpath
Ответить