Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Можно ли unset $_POST[' ']

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: При обновление страницы комментарий с помощью формы добавляется повторно...
koka
Отправлено: 16 Июля, 2010 - 20:42:49
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010  
Откуда: Россия, Ижевск


Помог: 1 раз(а)




Есть следующая пост-форма на странице, которая обрабатывается в этом же скрипте
CODE (html):
скопировать код в буфер обмена
  1.     <form action="" method="post" name="test">
  2. <TABLE cellpadding="0" cellspacing="0" border="0" width="70%">
  3.   <TR>
  4.     <TD >Тема<br><INPUT type="text" size=40 name="theme"></TD>
  5.          <TD>Имя<br><INPUT type="text" size=30 name="name" align="left"></TD>
  6.   </TR>
  7.   <TR>
  8.     <TD colspan="2">Сообщение<br>
  9.          <TEXTAREA class="form" name=message rows=3 style="width:50%"></TEXTAREA></TD></TR>
  10. </table>


Обрабатывается следующей функцией
PHP:
скопировать код в буфер обмена
  1. function comment_add()
  2.  
  3. {
  4.  
  5. $servis_id=$_POST[servis_id];
  6. $name=$_POST[name];
  7. $theme=$_POST[theme];
  8. $message=$_POST[message];
  9.  
  10.     $theme = stripslashes($theme);
  11.     $theme = htmlspecialchars($theme);
  12.     $message = stripslashes($message);
  13.     $message = htmlspecialchars($message);
  14.     $name = stripslashes($name);
  15.     $name = htmlspecialchars($name);
  16.     $theme = trim($_POST[theme]);
  17.     $message = trim($_POST[message]);
  18.     $name = trim($_POST[name]);
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. if((empty($_POST['name']))&&(isset($_POST['test']))) {
  28.                          $full = 'No';
  29.                          echo "<br><b><div align='center'>Вернитесь назад и напишите своё имя!!!</div></b>";
  30.  
  31.                  }
  32.                  if((empty($_POST['theme']))&&(isset($_POST['test']))) {
  33.                          $full = 'No';
  34.                          echo "<br><b><div align='center'>Вернитесь назад и напишите тему!!!</div></b>";
  35.                          }
  36.                                         if((empty($_POST['message']))&&(isset($_POST['test']))) {
  37.                          $full = 'No';
  38.                          echo "<br><b><div align='center'>Вернитесь назад и напишите ваше сообщение!!!</div></b>";}
  39.              
  40.                
  41.               if($full != 'No'){
  42.               $query = "INSERT INTO services_comments (servis_id,name,theme,message) VALUES('$servis_id','$name','$theme','$message')";
  43.               $result = mysql_query($query);
  44.              
  45.               if ($result!='TRUE')
  46.               {
  47.               echo "Произошла ошибка. Пожалуйста, <a href='mailto:webmaster@rulevoi.net'> сообщите о ней администрации сайта. </a><br>";    }
  48.                             }      
  49.              
  50.               }


Понимаю, что это немного похоже на ****код Улыбка
Подскажите, как лучше обработать форму. Пока учусь и не знаю, как правильно оптимизировать код......

Проблема в том, что при обновлении страницы комментарний добавляется повторно Огорчение

Пытался unset $_POST ['от значений формы'] вне функции....
Не помогает.
Как сделать условие, чтобы при обновление страницы функция не исполнялась, не знаю...

Может проще вынести добавление комментария в отдельный скрипт и возвращать пользователя при помощи header () ???
Но тогда не удобно выдавать предупреждение, что не заполнено поле такое.
Подскажите, пожалуйста.


-----
http://rulevoi[dot]net - запчасти для иномарок в Ижевске
 
 Top
DeepVarvar Супермодератор
Отправлено: 16 Июля, 2010 - 20:47:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Сделай как на этом форуме через header(); на страницу редиректор с кодом

<meta http-equiv="Refresh" content="3; url=kuda_nado.php">
(Добавление)
Я вообще делал так:
Страница с формой - это статика, а данные с нее летят на файл обработчик (скажем на check.php), вот в нем и проверяется валидность и заполненность полей формы и отправленных данных, на основании которых check.php и выдает либо "Ок!!!" либо формирует отчет об ошибках...
 
 Top
koka
Отправлено: 16 Июля, 2010 - 22:15:08
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010  
Откуда: Россия, Ижевск


Помог: 1 раз(а)




DeepVarvar пишет:
Сделай как на этом форуме через header(); на страницу редиректор с кодом

<meta http-equiv="Refresh" content="3; url=kuda_nado.php">
(Добавление)
Я вообще делал так:
Страница с формой - это статика, а данные с нее летят на файл обработчик (скажем на check.php), вот в нем и проверяется валидность и заполненность полей формы и отправленных данных, на основании которых check.php и выдает либо "Ок!!!" либо формирует отчет об ошибках...


Спасибо Спасибо и до свидания

Меня смущает при переадресации на страницу типа chek.php формирование отчета об ошибках. Можно ли сделать так, чтобы вывести ошибки, дать в течение нн-ого количества времени посмотреть на них (ошбики) а потом переадресовать. Ведь header() работает только если не выводить в браузер данные. Может есть какие-то другие способы переадресации после вывода текста????


-----
http://rulevoi[dot]net - запчасти для иномарок в Ижевске
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB