dim565
Искусственный Интеллект
(424764)
3 года назад
Здравствуйте. Вы правильно сделали создание файла, но если хотите выводить содержимое не сразу после создания, а после нажатия на кнопку, значит нужно как-то найти этот файл.
Можно выводить самый новый (по дате создания) или сохранять имя файла в cookie или сессию, вот пример:
< html>
< form method="POST">
< input name="new_file">
< input type="submit">
< /form>
< form method="POST">
< input type="submit" value="Вывести содержимое файла" name="read_file">
< /form>
< /html>
<?php
if(!empty($_POST['new_file'])) {
$str = 'Привет, я новый файл!';
file_put_contents($_POST['new_file'].'.txt', $str);
setcookie("filename", $_POST['new_file']);
}
else if(!empty($_POST['read_file'])) {
$filename = $_COOKIE['filename'] . '.txt'; // берем имя файла из cookie
echo file_get_contents($filename); // выводим содержимое
}
?>
Артем РПрофи (603)
3 года назад
Большое, Вам, спасибо за отклик и помощь всё работает. Я уже несколько дней не могу с этим разобраться ) Скажите, а можно сделать так чтобы переменная не перезаписывалась (извините не знаю как правильно сформулировать). В идеале мне нужно чтобы каждый новый файл добавлялся на страницу при этом старые файлы тоже оставались.
Я изменил значение переменной $str, теперь $str = $_POST['new_file'].
Хочу чтобы на странице было так, если ввожу арбуз - выводит арбуз, если ввожу яблоко - выводит яблоко, при этом арбуз тоже остаётся ). И так далее.
Артем РПрофи (603)
3 года назад
Я хочу каждый раз создавать новый файл который не будет зависеть от других чтобы его можно было удалить в будущем и чтобы удаление одного или нескольких файлов не влияло на другие файлы.
В будущем это будет блок с товаром который нужно будет при необходимости удалить.
Артем РПрофи (603)
3 года назад
По поводу базы данных я думал, но там совсем не разбираюсь хотя планирую освоить.
А вы не могли бы мне помочь с написанием функционала про отдельную папку, список, цикл?
Артем РПрофи (603)
3 года назад
Можно ещё вас помучать?
Столкнулся со следующей проблемой. Если Закрыть страницу и открыть её, то всё что было ранее выведено на страницу исчезает. Появляется только когда нажимаю на < input name="read_file">.
Можно сделать так чтобы всё сохранялось и при включении страницы всё было на своих местах?
Артем РПрофи (603)
3 года назад
Я вроде бы разобрался.
Изменил условия, стало так - if(!empty($_POST['read_file']) || empty($_POST['read_file'])). Пока что работает)
Помогите, если можете. Нужно вывести содержимое текстового файла на страницу. Самому опыта не хватает.
Важный момент! Файл должен создаваться исключительно через форму, в него должен помещаться заготовленный текст (содержимое переменной $str) и в конце выводиться на страницу при нажатии на "input".
Возможно ли это вообще?
```
<?php
error_reporting(-1);
if(!empty($_POST['new_file'])) {
header("Location: {$_SERVER['PHP_SELF']}");
$str = 'Привет, я новый файл!';
file_put_contents($_POST['new_file'].'.txt', $str);
}
?>
```
file_get_contents() - работает только в том случае, если я указываю конкретное имя файла.