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 :: Избавляемся от повторной отправки формы

 PHP.SU

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


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

> Описание: Подскажите как
Dezmont
Отправлено: 29 Ноября, 2011 - 13:32:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


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




Здравствуйте, подскажите пожалуйста. Есть у меня такой кусок кода:
PHP:
скопировать код в буфер обмена
  1. foreach($_POST as $form_name=>$form_data){
  2.         if(isset($_POST[$form_name]) && !empty($_POST[$form_name])){    //Если все формы заполнены получаем TRUE, иначе FALSE и выводим сообщение
  3.                 $is_form_correct = true;
  4.         }
  5.         else{
  6.                 $is_form_correct = false;
  7.                 echo 'Вы ввели не все данные';
  8.                 break;
  9.         }
  10. }
  11.  
  12. if($is_form_correct){ //Если форма отправлена верно, то идёт перебор массива и запись в БД
  13.         foreach($_POST as $form_name=>$form_data){
  14.                 $clear_data .= "'".stripslashes(trim(htmlspecialchars($form_data,ENT_QUOTES)))."'".',';
  15.                 $form_name_end .= $form_name.',';
  16.         }
  17.         $form_name_end = substr($form_name_end,0,-1);
  18.         $clear_data = substr($clear_data,0,-1);
  19.         $sql = "
  20.         INSERT INTO
  21.                 $table_name ($form_name_end)
  22.         VALUES
  23.                 ($clear_data)
  24.         ";
  25.         $request = mysql_query($sql);
  26.         if($request){
  27.                 echo "<b>Запись внесена успешно!</b>";  //Если данные успешно внесены выводится сообщение
  28.         }
  29. }

В зависимости от входного массива, заносит данные в БД.
Куда и как мне запихать header('Location:'.$_SERVER['REQUEST_URI']);чтобы после того, как данные отправлены, меня отредиректило на эту же страницу и, в то же время, вывело сообщение: Запись внесена успешно!
 
 Top
Bio man
Отправлено: 29 Ноября, 2011 - 13:36:17
Post Id


Постоянный участник


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


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




header('Refresh 3; url='.$_SERVER['REQUEST_URI']);
покажет надпись и через 3 секунды обновит страницу
 
 Top
Dezmont
Отправлено: 29 Ноября, 2011 - 13:49:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


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




Спасибо Bio man. А так, чтобы осталась выведенная фраза? Только с параметром передаваемым в url или Location? Мне в голову больше ничё не приходит, может есть ещё способы?
 
 Top
Bio man
Отправлено: 29 Ноября, 2011 - 17:30:09
Post Id


Постоянный участник


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


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




логика такова. данные заносятся в БД, если все ок то выводим фразу "Запись внесена успешно!" и редиректим на ту же страницу. или, если все ок, пиши в сессию переменную, которая определяет выводить надпись или нет. после редиректа проверяем переменную и в зависимости от нее выводим фразу и сразу после вывода очищаем ее, что бы в следущий раз лагов не было.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB