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



 

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

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

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Форма отправки комментариев, как сбросить данные
Piter_hb
Piter_hb
Topic Starter сообщение 22.3.2013, 10:26; Ответить: Piter_hb
Сообщение #1


Здравствуйте, просьба помочь с кодом комментариев, т.к. при написании возникли вопросы:
1. Нижеуказанный код вроде бы отрабатывает и после того как все поля заполнены выдает введенные данные и удаляет их из формы, но как сделать так что бы введенные данные удалялись из формы если мы нажимаем в браузере стрелку назад.
2. Естественно вместо вывода данные будут записываться в базу MySQL, где будет проверка есть ли пользователь с таким именем или нет и т.д. вопрос нужно ли использовать сессии в данном случае, если пользователь только отправляет данный комментарий и всё или можно обойтись без сессий .

[PHP]

<?php
$ip=$_SERVER['REMOTE_ADDR'];

if($_SERVER['REQUEST_METHOD']=='POST')
{

foreach($_POST as $key=>$value)
{
$value=trim(strip_tags($value));

if (get_magic_quotes_gpc())
$value = stripslashes($value);
$_POST[$key] = $value;
}
$oshib = '';

if (!$text)
$oshib.='Вы не ввели имя!<br>';
if(strlen($text)>29)
$oshib.="Вы ввели слишком длинное имя,укоротите проявите фантазию!<br>";
if (!$email)
$oshib.="Вы не ввели email!<br>";
if (!$slovo)
$oshib.="А где ваш комментарий ??<br>";
echo $oshib;

if(!$oshib)
{
/*?> здесь потом будет код добавления в базу <?php */

echo "Ваш комментарий успешно добавлен, спасибо.<br>";
echo htmlspecialchars($text).'<br>'.htmlspecialchars($email).'<br>'.nl2br(htmlspecialchars($slovo));
echo '<br>'.$ip.'<br>';

$_POST['text']=$_POST['email']=$_POST['slovo']='';
}

}

?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<p>Введите ваше имя: <input name="text" type="text" value="<?php echo $_POST['text'];?>"></p><br/>
<p>Введите ваш email: <input name="email" type="text" value="<?php echo $_POST['email']; ?>"></p><br/>
<p>Введите ваше сообщение: <textarea name="slovo" cols="50" rows="10"><?php echo $_POST['slovo'];?></textarea></p><br/>
<p align="center"> <input name="ok" type="submit" value="Отправить"></p>
</form>

[/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Anonym
Anonym
сообщение 22.3.2013, 16:17; Ответить: Anonym
Сообщение #2


(Piter_hb @ 22.3.2013, 13:26) *
вопрос нужно ли использовать сессии в данном случае, если пользователь только отправляет данный комментарий и всё или можно обойтись без сессий .

Ну и зачем вам сессии тут?
(Piter_hb @ 22.3.2013, 13:26) *
Нижеуказанный код вроде бы отрабатывает и после того как все поля заполнены выдает введенные данные и удаляет их из формы, но как сделать так что бы введенные данные удалялись из формы если мы нажимаем в браузере стрелку назад.

а зачем это надо, или я чего-то не понял...?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Piter_hb
Piter_hb
Topic Starter сообщение 22.3.2013, 17:07; Ответить: Piter_hb
Сообщение #3


(Anonym @ 22.3.2013, 19:17) *
а зачем это надо, или я чего-то не понял...?


Если пользователь отправит комментарий, а затем нажмет стрелку назад, опять в полях появятся введенные и отправленные уже данные, нужно сделать защиту от дурака.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Anonym
Anonym
сообщение 22.3.2013, 17:28; Ответить: Anonym
Сообщение #4


после отправки комментария header("Location:".$_SERVER['HTTP_REFERER']);
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Zippovich
Zippovich
сообщение 22.3.2013, 18:07; Ответить: Zippovich
Сообщение #5


это дурацкая защита от дурака
как по мне это полезно что данные сохраняются - не нужно заново вводить имя, отчество, емейл и пр. поля.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Piter_hb
Piter_hb
Topic Starter сообщение 22.3.2013, 22:51; Ответить: Piter_hb
Сообщение #6


(Anonym @ 22.3.2013, 20:28) *
после отправки комментария header("Location:".$_SERVER['HTTP_REFERER']);


Что то не получается точную строчку можешь указать вставки данного кода?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Piter_hb
Piter_hb
Topic Starter сообщение 22.3.2013, 22:56; Ответить: Piter_hb
Сообщение #7


(Zippovich @ 22.3.2013, 21:07) *
это дурацкая защита от дурака
как по мне это полезно что данные сохраняются - не нужно заново вводить имя, отчество, емейл и пр. поля.


Я наверное плохо объяснил, данный скрипт сохраняет данные введенные и так, если поля не заполнены или с ошибкой, то верно введенные данные сохраняются не обнуляются и пользователь просто дописывает правильно оставшиеся. После отправки если все проверки прошли верно, данные отправляются(в данном случае выводятся на страницу) и форма очищается - всё красиво. Но если пользователь по какой-либо причине листанет страницу браузера назад, но он увидит свой предпоследний шаг, т.е. заполненные поля и может снова отправить те же данные второй раз!!! Хотелось бы что бы он видел при листании назад просто пустую чистую форму.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 22.3.2013, 23:28; Ответить: Arks
Сообщение #8


Piter, по Вашему коду этого не видно и думаю гадалки с прорецателями как обычно зажигают на мальдивах...Короче говоря, нужно больше кристаллов!
Вы можете сделать отдельный скрипт или это где-то далеко у Вас закопано в недрах веб-приложения?
Вы можете предоставить доступ к веб-приложению для решения проблемы?
Без ответов говорить о чем-то бессмысленная потеря времени а-ля "у меня что-то где-то не работает, вот Вам пара строчек кода, как же мне всё починить".
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Piter_hb
Piter_hb
Topic Starter сообщение 22.3.2013, 23:35; Ответить: Piter_hb
Сообщение #9


(Arks @ 23.3.2013, 02:28) *
Piter,
Вы можете сделать отдельный скрипт или это где-то далеко у Вас закопано в недрах веб-приложения?
Вы можете предоставить доступ к веб-приложению для решения проблемы?

Так в том то и дело что нет ни какого веб-приложения, я просто учусь и поставил себе такую задачу, полный код я представил, запускаю файл php , выдается форма я её заполняю, если всё заполнено верно при нажатии кнопки Отправить выдает :Ваш комментарий успешно добавлен, спасибо, далее выводятся данные и пустая форма, всё в порядке, но при нажатии назад в браузере мы видим предпоследний шаг, я прошу помощи что бы форма очищалась... я уже и это смотрю ob_start(); только ни фига не понятно...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Piter_hb
Piter_hb
Topic Starter сообщение 22.3.2013, 23:40; Ответить: Piter_hb
Сообщение #10


[PHP]
<?php

error_reporting(E_ALL);

$text = !empty($_POST['text']) ? $_POST['text'] : null;
$email = !empty($_POST['email']) ? $_POST['email'] : null;
$slovo = !empty($_POST['slovo']) ? $_POST['slovo'] : null;
$ip=$_SERVER['REMOTE_ADDR'];


phpinfo(32);
if($_SERVER['REQUEST_METHOD']=='POST')
{

foreach($_POST as $key=>$value)
{
$value=trim(strip_tags($value));
if (get_magic_quotes_gpc()) $value = stripslashes($value);
$_POST[$key] = $value;
}
$oshib = '';

if (!$text) $oshib.='Вы не ввели имя!<br>';
if(strlen($text)>29) $oshib.="Вы ввели слишком длинное имя,укоротите проявите фантазию!<br>";
if (!$email) $oshib.="Вы не ввели email!<br>";
if (!$slovo) $oshib.="А где ваш комментарий ??<br>";
echo $oshib;
if(!$oshib)
{
/*?> $co = mysql_query("INSERTн INTO `comment` (`username`,`email`) VALUES('$text','$email')"); <?php */

$kl="Ваш комментарий успешно добавлен, спасибо";
echo $kl;


echo htmlspecialchars($text).'<br>'.htmlspecialchars($email).'<br>'.nl2br(htmlspecialchars($slovo)); echo '<br>'.$ip.'<br>';


$_POST['text']=$_POST['email']=$_POST['slovo']=NULL;



}

}

?>





<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<p>Введите ваше имя: <input name="text" maxlength="30" type="text" value="<?php echo $_POST['text'];?>"></p><br/>
<p>Введите ваш email: <input name="email" maxlength="30" type="text" value="<?php echo $_POST['email']; ?>"></p><br/>
<p>Ваш комментарий Введите ваше сообщение: <textarea name="slovo" cols="50" rows="10"><?php echo $_POST['slovo'];?></textarea></p><br/>
<p align="center"> <input name="ok" type="submit" value="Отправить"></p>

</form>

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Арбитражники, как ведете учет расходов и доходов?
12 Boymaster 1925 Вчера, 21:03
автор: MisterBit
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
29 freeax 4817 17.4.2024, 1:19
автор: sergio11
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
148 adw-kupon.ru 19715 8.4.2024, 10:37
автор: Skyworker
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
18 uahomka 3109 5.4.2024, 5:53
автор: Skyworker
Горячая тема (нет новых ответов) Как бездомные хранят деньги?
81 metvekot 13660 31.3.2024, 12:44
автор: Boymaster


 



RSS Текстовая версия Сейчас: 20.4.2024, 8:10
Дизайн