X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Отправка данных через форму
scva
scva
Topic Starter сообщение 27.1.2009, 12:00; Ответить: scva
Сообщение #1


Вожу в форму данные, отправляю, данные записываются в текстовый файл и выводятся затем на странице, где расположенна форма.
Форма пуста, делаю обновление странице и выводится последнее отправленное сообщение, хотя поля формы пусты.
Как избежать этого?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 27.1.2009, 12:28; Ответить: MetSerp
Сообщение #2


Код формы дайте ;)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 27.1.2009, 12:32; Ответить: scva
Сообщение #3


(MetSerp @ 27.1.2009, 14:28) *
Код формы дайте ;)

[php] <?php
$name = htmlspecialchars ($_POST['name']);
$email = htmlspecialchars ($_POST['email']);
$mes = htmlspecialchars ($_POST['mes']);
$text .= "Имя: $name \n";
$text .= "Почта: $email \n";
$text .= "Сообщение: $mes \n";
if (!empty($name) && !empty($email) && !empty($mes))
{
$file = fopen ("mes.txt", "a+");
fwrite ($file,$text);
fclose ($file);
}
?>

<form action="faq.php" method="post">
<p>Ваше имя<br>
<input name="name" type="text" class="login_form" size="25">
</p>
<p>Ваше e-mail<br>
<input name="email" type="text" class="login_form" size="25">
</p>
<p>Ваш вопрос<br>
<textarea name="mes" cols="50" rows="5" class="body_txt"></textarea>
</p>
<p>
<label>
<input name="submit" type="submit" class="lsovet" id="submit" value="спросить">
</label>
</p>
</form>

<pre> <? include ('mes.txt')?> </pre>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 27.1.2009, 12:34; Ответить: MetSerp
Сообщение #4


если вообще не надо выводить сообщение то уберите
<pre> <? include ('mes.txt')?> </pre>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 27.1.2009, 12:37; Ответить: scva
Сообщение #5


(MetSerp @ 27.1.2009, 14:34) *
если вообще не надо выводить сообщение то уберите
<pre> <? include ('mes.txt')?> </pre>

выводить то надо,
к примеру: написал сообщение отправил, сообщение появилось на тсранице, затем я просто обновляю страницу и оно второй раз появляется уже ниже
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 27.1.2009, 12:41; Ответить: MetSerp
Сообщение #6


хмм немного не понял.
Т.е.
необходимо (даже сформулирвать не могу никак:rolleyes:)
при каждом обновление странице вписывать пустые строки в текстовый файл дабы сделать отступ?:wacko:
затем выводить их?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 27.1.2009, 12:52; Ответить: scva
Сообщение #7


(MetSerp @ 27.1.2009, 14:41) *
хмм немного не понял.
Т.е.
необходимо (даже сформулирвать не могу никак:rolleyes:)
при каждом обновление странице вписывать пустые строки в текстовый файл дабы сделать отступ?:wacko:
затем выводить их?

не то
обновилась страница, и вывелось то сообщение которое было введеено последним
Как этого избежать, чтоб оно не выводилось
К примеру 10 раз обновлю страницу и появится 10 одинаковых сообщений
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 27.1.2009, 13:00; Ответить: MetSerp
Сообщение #8


эмм :wacko: этого не должно быть выводится содержание файла
Есть правда один вариант....
Когда вы обновляете страницу браузер вас спрашивает о том что поля формы содержат данные и если страницу обновить то запрос выполнится опять?
Если да то тут виноват сам пользователь а не скрипт скрипт получает данные и пишет их в файл как ему и написанно в функции.
Я себе смутно представляю реализацию защиты "От дурака" вне бд (там можно просто проверять уникальность введенного значения)
Единственное это если перед записью файла осуществлять по нему поиск фразы введенной в качестве сообщения и если она обнаруженна в точности с учетом регистра и пробелов, переносов всего всего тогда прерывать выполнение скрипта и выводить ошибку
НО у этого метода есть огромный минусище
Если файл будет крупным то посик по нему будет замедлять работу скрипта очень и очень сильно и если файл действительно большой то это и визуально будет видно
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 27.1.2009, 13:03; Ответить: scva
Сообщение #9


(MetSerp @ 27.1.2009, 15:00) *
эмм :wacko: этого не должно быть выводится содержание файла
Есть правда один вариант....
Когда вы обновляете страницу браузер вас спрашивает о том что поля формы содержат данные и если страницу обновить то запрос выполнится опять?
Если да то тут виноват сам пользователь а не скрипт скрипт получает данные и пишет их в файл как ему и написанно в функции.
Я себе смутно представляю реализацию защиты "От дурака" вне бд (там можно просто проверять уникальность введенного значения)
Единственное это если перед записью файла осуществлять по нему поиск фразы введенной в качестве сообщения и если она обнаруженна в точности с учетом регистра и пробелов, переносов всего всего тогда прерывать выполнение скрипта и выводить ошибку
НО у этого метода есть огромный минусище
Если файл будет крупным то посик по нему будет замедлять работу скрипта очень и очень сильно и если файл действительно большой то это и визуально будет видно


можно перезагрзку делать?
header("Location: <Файл с формой>");
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 27.1.2009, 13:09; Ответить: MetSerp
Сообщение #10


Во пришел в голову элементарный вариант на ява скрипте. Просто при загрузке очищать форуму :prilichno:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыBropush - Твой бро в монетизации через Push-уведомления
31 bropush 11971 Сегодня, 13:00
автор: bropush
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
15 yaroslav89 6873 8.4.2024, 17:17
автор: spoyer_ru
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 2393 23.3.2024, 7:41
автор: Room
Открытая тема (нет новых ответов) ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ
[Чарджбек|Рекавери|Возврат]
9 Leado 3916 9.2.2024, 16:04
автор: baza0013
Открытая тема (нет новых ответов) Продвижение сайта через краудинг с поддержкой
Полный комплекс мер по продвижению сайта
0 alexey 1016 22.8.2023, 16:33
автор: alexey


 



RSS Текстовая версия Сейчас: 25.4.2024, 15:18
Дизайн