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
Форумы портала PHP.SU :: Версия для печати :: Избавляемся от повторной отправки формы
Форумы портала PHP.SU » » Вопросы новичков » Избавляемся от повторной отправки формы

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

1. Dezmont - 29 Ноября, 2011 - 13:32:22 - перейти к сообщению
Здравствуйте, подскажите пожалуйста. Есть у меня такой кусок кода:
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']);чтобы после того, как данные отправлены, меня отредиректило на эту же страницу и, в то же время, вывело сообщение: Запись внесена успешно!
2. Bio man - 29 Ноября, 2011 - 13:36:17 - перейти к сообщению
header('Refresh 3; url='.$_SERVER['REQUEST_URI']);
покажет надпись и через 3 секунды обновит страницу
3. Dezmont - 29 Ноября, 2011 - 13:49:29 - перейти к сообщению
Спасибо Bio man. А так, чтобы осталась выведенная фраза? Только с параметром передаваемым в url или Location? Мне в голову больше ничё не приходит, может есть ещё способы?
4. Bio man - 29 Ноября, 2011 - 17:30:09 - перейти к сообщению
логика такова. данные заносятся в БД, если все ок то выводим фразу "Запись внесена успешно!" и редиректим на ту же страницу. или, если все ок, пиши в сессию переменную, которая определяет выводить надпись или нет. после редиректа проверяем переменную и в зависимости от нее выводим фразу и сразу после вывода очищаем ее, что бы в следущий раз лагов не было.

 

Powered by ExBB FM 1.0 RC1