Имеется форма, в которой нужно вписать имя. При отправке формы, информация записывается в файл имя, мне нужно, чтобы при просмотре других пользователей отображалось последнее отправленное формой имя. Но при открытии файла в новой вкладке браузера все пропадает, а содержимое файла data.txt стирается. Код (Text): $server = $_POST['server']; file_put_contents('data.txt', $server); echo file_get_contents('data.txt'); Как сделать так, чтобы только при повторной отправке формы файл как раз таки перезаписывался? Мне нужно, чтобы те, кто имеет ссылку к форме, мог изменять скрипт через форму, вводя имя.
Нет, вообщем я сделал так Код (Text): <?php $info = $_POST['info']; file_put_contents('info.txt', PHP_EOL.$server, FILE_APPEND); echo file_get_contents('info.txt'); ?> Но к файлу добавляется текст, а как сделать, чтобы при отправке формы файл перезаписывался?
Вообще когда люди дают ответ который тебе помогает, принято благодарить, для этого есть иконка с пальцев вверх. Т.е. человек потратил на тебя свое время и было бы правильно оценить его работу, такая минимальная плата за его труд и время. Ну, а касаемо твоего дописывания, так за это отвечает "FILE_APPEND" Кроме этого, зачем плодить однотипные топики?
Выше человек подсказал, что возможно отправляется пустая форма. По сути у тебя нет проверки пустой запрос $_POST['info'] соответственно, при каждом обращении к php файлу выполняется весь код. Для этого нужно выполнить проверку: PHP: <?php $info = $_POST['info']; if (!empty($info)) { file_put_contents('info.txt', $info); } ?> Но опять же, это только пример, не более. Т.к. как я писал в другом топике, в ответ на твой же вопрос, данные код не выполняет проверку, и соответственно, если в форму ввести Код (Text): <h1>DjPHP</h1> то при отображении содержимого файла info.txt отобразиться с тегами, можешь попробовать. Чтоб этого избежать нужно применить strip_tags() PHP: <?php $info = $_POST['info']; if (!empty($info)) { file_put_contents('info.txt', strip_tags($info)); } ?>
Что тут не так Код (Text): <?php $test = $_POST['test']; if (!empty($test)) { file_put_contents('test.txt', $test); } file_put_contents('test.txt', PHP_EOL.$server, FILE_APPEND); echo file_get_contents('test.txt'); ?>
PHP: file_put_contents('test.txt', PHP_EOL.$server, FILE_APPEND); Этим ты обходишь проверку и дописываешь данные в файл 'test.txt' Т.е. нужно вот так: PHP: <?php $info = $_POST['info']; if (!empty($info)) { file_put_contents('info.txt', strip_tags($info)); } echo file_get_contents('test.txt'); ?> Вот это не нужно: PHP: file_put_contents('test.txt', PHP_EOL.$server, FILE_APPEND); Кроме это в одном примере у тебя $_POST['info'] в другом $_POST['test'] Тут соответственно пропиши что именно у тебя приходит 'info' или 'test'
Спасибо вам огромное! А еще вопросик, как сделать перенос на сл.строку между $_POST['test'] и $_POST['info'] И как перед значением $_POST['test'] добавить обычный текст, например Сообщение?
Перенос на следующую строку это вот так: PHP: file_put_contents('info.txt', strip_tags($info))."\n"; или PHP: file_put_contents('info.txt', strip_tags($info)).PHP_EOL; В контексте отображения в браузере: PHP: file_put_contents('info.txt', strip_tags($info))."<br>"; В форме сколько полей? Поле для ввода Имени диджея и поле для ввода доп инфы? Т.е если в форме несколько полей и каждое должно быть в обязательном порядке заполнино, то соответственно и проверка будет другая, желательно сделать и предпроверку самой формы на JS.
Да, нужно чтобы я вводил просто имя, а не Имя DJ - Test, для доп.инфы также, чтобы слово доп.инфа уже была отображена
Как можно добавить свой текст в файл Код (Text): if (!empty($test)) { file_put_contents(Свой текст, 'test.txt', strip_tags($test)); } Но так не работает. И как вы сказали раньше про отступ строки, у меня теперь указывается в первом значении количество введеных символов, а второе как обычно. Код (Text): echo file_put_contents('test.txt', strip_tags($test))."<br>"; echo file_get_contents('info.txt');
PHP: <?php $info = $_POST['info']; $myText = 'Мой Текст'; $br = '<br>'; if (!empty($info)) { file_put_contents('info.txt', strip_tags($info).$br.$myText); } echo file_get_contents('test.txt'); ?> Только почему в одном примере пишем в 'info.txt' а читаем из 'test.txt' ?