Форум русской поддержки Joomla!® CMS
01.05.2017, 00:52:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Данные полей формы не отправляются в базу

 (Прочитано 163 раз)
0 Пользователей и 1 Гость смотрят эту тему.
web3.0
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 134


« : 11.04.2017, 19:02:59 »

Простая контактная форма из 3 полей. В таблицу записываются переменные, а не их данные.

Показать текстовый блок

В таблице: $name и 1111112.
Как подцепить форму к запросу?
Записан
robert
Профи
********

Репутация: +368/-14
Offline Offline

Пол: Мужской
Сообщений: 3955


« Ответ #1 : 11.04.2017, 23:51:45 »

Как подцепить форму к запросу?
Правильным синтаксисом.
Код
$query->insert('#__ord')->columns('name, email')->values($name, '1111112');
Записан
fsv
Практически профи
*******

Репутация: +353/-2
Offline Offline

Пол: Мужской
Сообщений: 2466


« Ответ #2 : 12.04.2017, 02:33:03 »

Вы действительно trim ($_POST['name']) хотите записать в БД? Или так оригинально пример упростили?
Записан
web3.0
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 134


« Ответ #3 : 12.04.2017, 09:36:22 »

Правильным синтаксисом.
Код
$query->insert('#__ord')->columns('name, email')->values($name, '1111112');
В этом варианте открывается страница ошибки с сообщением:
1136 Column count doesn't match value count at row 1 SQL=INSERT INTO #__ord (name, email) VALUES ()

trim ($_POST['name']) - это от отправки почты. Сейчас головная боль - вставить данные.
Записан
robert
Профи
********

Репутация: +368/-14
Offline Offline

Пол: Мужской
Сообщений: 3955


« Ответ #4 : 12.04.2017, 10:08:42 »

Sorry
Код
$query->insert('#__ord')->columns('name, email')->values($name .  ', 1111112');
trim ($_POST['name']) - это от отправки почты.
fsv имел в виду SQL-инъекцию, которую вы можете получить, записывая необработанную строку в БД.
Записан
lsk
Давно я тут
****

Репутация: +13/-5
Offline Offline

Сообщений: 369



« Ответ #5 : 12.04.2017, 12:42:13 »

...
« Последнее редактирование: 12.04.2017, 12:47:30 от lsk » Записан
web3.0
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 134


« Ответ #6 : 12.04.2017, 12:52:51 »

Sorry
Код
$query->insert('#__ord')->columns('name, email')->values($name .  ', 1111112');

Страница ошибки с сообщением:
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1111112)' at line 3 SQL=INSERT INTO #__orders (name, email) VALUES (, 1111112)
Записан
robert
Профи
********

Репутация: +368/-14
Offline Offline

Пол: Мужской
Сообщений: 3955


« Ответ #7 : 12.04.2017, 13:01:08 »

Страница ошибки с сообщением:
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1111112)' at line 3 SQL=INSERT INTO #__orders (name, email) VALUES (, 1111112)
Потому что $name у вас - пустая. Может быть, пока повремените с кодописанием?
Записан
SeBun
Практически профи
*******

Репутация: +167/-5
Offline Offline

Пол: Мужской
Сообщений: 2776



« Ответ #8 : 12.04.2017, 13:05:34 »

Код
 
$query
   ->insert($db->quoteName('#__ord'))
   ->columns($db->quoteName(array('name', 'email')))
   ->values(array($name, '1111112'));
 
 

Примерно так должно быть. А перед этим - проверка переменных, особенно из массива POST, иначе вас взломают в первый же день.
Записан
SeBun
Практически профи
*******

Репутация: +167/-5
Offline Offline

Пол: Мужской
Сообщений: 2776



« Ответ #9 : 12.04.2017, 13:12:02 »

И да, согласен с robert - лучше не писать пока под Joomla, а изучить базовые основы PHP и запросы к MySQL. После этого вы сможете понимать используемые в Joomla классы.
Записан
web3.0
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 134


« Ответ #10 : 12.04.2017, 19:12:21 »

SeBun, спасибо за подсказку. Массив наше все!

Рабочий вариант. Может кому пригодится.
Показать текстовый блок

Есть проблема. При перезагрузке страницы отправляются предыдущие данные формы.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet