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 » » HTTP и PHP » Форма добавления контента

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

1. McLotos - 26 Апреля, 2011 - 14:35:31 - перейти к сообщению
Есть форма, в ней 2 поля ввода, и кнопка (примитивная форма) =)
Через эту форму в БД добавляются данные, но если обновить страницу, поля формы не очищаются, а записываются в БД ещё раз, и ещё раз, короче если зажать F5 то данные будут в БД добавляться и добавляться... но это ещё не всё. Если поля очистить и опять-же обновить страницу, в таком случае в БД запишется пустое значение, и ему тоже присвоится id и т.д. Как исправить этот бред? Пробовал добавлять unset не помогло
2. EuGen - 26 Апреля, 2011 - 14:37:41 - перейти к сообщению
Перенаправляйте скрипт, скажем, на самого же себя при помощи header после добавления данных.
А данные добавляйте, только если пришедшие значения - непусты.
3. vhm - 26 Апреля, 2011 - 14:41:41 - перейти к сообщению
Что то вроде
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['var']) && isset($_POST['var2'])){
  3.      /*Добавляем в БД*/
  4.  
  5.      /*После добавления делаем редирект*/
  6.      header('Location: '.$_SERVER['PHP_SELF']);
  7. }
  8.  
4. morosit - 26 Апреля, 2011 - 14:53:18 - перейти к сообщению
на пустоту значений лучше проверять
5. McLotos - 26 Апреля, 2011 - 16:23:15 - перейти к сообщению
Редирект не срабатывает. Начала появляться куча ошибок. Сначала матерился типа редирект уже есть. Хотя он там только 1 раз. Теперь ругается на класс, который там используется. А как кстати можно вообще избавиться от класса?
Спойлер (Отобразить)
6. McLotos - 27 Апреля, 2011 - 07:24:55 - перейти к сообщению
Одну часть проблемы решил. Установил в БД аттрибут U для одного из вводимых полей. Но один вопрос всё-равно остаётся - если поля формы пустые, и обновлять страницу, то в БД добавляются новые значения пустота. Как исправить этот глюк? В БД для всех полей стоит NOT NULL
7. Andruxa - 27 Апреля, 2011 - 07:44:32 - перейти к сообщению
Выше Вам уже дали направление как решить проблему (проверять на пустоту поле)
Добавьте к кнопке параметр name
CODE (html):
скопировать код в буфер обмена
  1. <button type="submit" name="add_mess">Добавить</button>

И проверяем
PHP:
скопировать код в буфер обмена
  1. #
  2. if (isset($_POST['add_mess']) and empty($_POST['message'])){ //Проверяем нажата ли кнопка и проверяем поле на пустоту
  3.     echo"Вы ничего не ввели!";
  4.     echo '<meta http-equiv="refresh" content="2;url=page.php" />'; // редирект на нужную страницу
  5. }
  6. else{
  7.  // делаем запись в БД
  8. {
  9.  

Цитата:
Одну часть проблемы решил. Установил в БД аттрибут U для одного из вводимых полей

На мой взгляд Очень кардинальное решение Улыбка

 

Powered by ExBB FM 1.0 RC1