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]   

> Описание: Не работает очистка
McLotos
Отправлено: 26 Апреля, 2011 - 14:35:31
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2011  


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




Есть форма, в ней 2 поля ввода, и кнопка (примитивная форма) =)
Через эту форму в БД добавляются данные, но если обновить страницу, поля формы не очищаются, а записываются в БД ещё раз, и ещё раз, короче если зажать F5 то данные будут в БД добавляться и добавляться... но это ещё не всё. Если поля очистить и опять-же обновить страницу, в таком случае в БД запишется пустое значение, и ему тоже присвоится id и т.д. Как исправить этот бред? Пробовал добавлять unset не помогло


-----
ЯГотовПоверить,ЧтоБываютСлучаи,КогдаУдалениеЗубовАвтогеномЧерезЗаднийПроходЯвляетсяРациональным.
 
 Top
EuGen Администратор
Отправлено: 26 Апреля, 2011 - 14:37:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Перенаправляйте скрипт, скажем, на самого же себя при помощи header после добавления данных.
А данные добавляйте, только если пришедшие значения - непусты.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vhm
Отправлено: 26 Апреля, 2011 - 14:41:41
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2011  


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




Что то вроде
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['var']) && isset($_POST['var2'])){
  3.      /*Добавляем в БД*/
  4.  
  5.      /*После добавления делаем редирект*/
  6.      header('Location: '.$_SERVER['PHP_SELF']);
  7. }
  8.  

(Отредактировано автором: 26 Апреля, 2011 - 14:42:13)

 
 Top
morosit
Отправлено: 26 Апреля, 2011 - 14:53:18
Post Id



Посетитель


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


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




на пустоту значений лучше проверять
 
 Top
McLotos
Отправлено: 26 Апреля, 2011 - 16:23:15
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2011  


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




Редирект не срабатывает. Начала появляться куча ошибок. Сначала матерился типа редирект уже есть. Хотя он там только 1 раз. Теперь ругается на класс, который там используется. А как кстати можно вообще избавиться от класса?
Спойлер (Отобразить)

Скачать файл: Positions.class.php
Скачан раз: 177

(Отредактировано автором: 26 Апреля, 2011 - 16:30:04)



-----
ЯГотовПоверить,ЧтоБываютСлучаи,КогдаУдалениеЗубовАвтогеномЧерезЗаднийПроходЯвляетсяРациональным.
 
 Top
McLotos
Отправлено: 27 Апреля, 2011 - 07:24:55
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2011  


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




Одну часть проблемы решил. Установил в БД аттрибут U для одного из вводимых полей. Но один вопрос всё-равно остаётся - если поля формы пустые, и обновлять страницу, то в БД добавляются новые значения пустота. Как исправить этот глюк? В БД для всех полей стоит NOT NULL


-----
ЯГотовПоверить,ЧтоБываютСлучаи,КогдаУдалениеЗубовАвтогеномЧерезЗаднийПроходЯвляетсяРациональным.
 
 Top
Andruxa
Отправлено: 27 Апреля, 2011 - 07:44:32
Post Id



Частый гость


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


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




Выше Вам уже дали направление как решить проблему (проверять на пустоту поле)
Добавьте к кнопке параметр 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 для одного из вводимых полей

На мой взгляд Очень кардинальное решение Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB