Запись в базу данных Joomla - PullRequest
       1

Запись в базу данных Joomla

1 голос
/ 23 февраля 2012

Я разработчик внешнего интерфейса, поэтому мой PHP немного отсутствует, и я застрял.
Я пытаюсь записать некоторые данные из формы в базу данных Joomla.
Это всего лишь электронная почтаадрес так не сложен.Я создал форму и таблицу в базе данных для хранения адресов электронной почты.Однако я не могу заставить его записать в базу данных, и я не уверен, что мне не хватает.
Я не уверен, какие классы мне нужно включить в мой код.Я включаю joomla / factory, поэтому я не получаю сообщение об ошибке, сообщающее, что JFactory не является объектом, но я не знаю, нужно ли мне что-то еще включать.

Вот мой PHP-код:

$emailAdd = $_POST['email'];

require_once ('../../libraries/joomla/factory.php');

$db =& JFactory::getDBO();
$query = "INSERT INTO '#__pdfemails' ('emailaddress')
    VALUES ('thevalue')";
$db->setQuery($query);
$db->query();

Я вообще не получаю никаких ошибок, но это не запись в базу данных.

Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

5 голосов
/ 23 февраля 2012

Вот простой ответ для вас - http://extensions.joomla.org/extensions/contacts-and-feedback/forms

Там 2 страницы конструкторов форм.Я знаю, что Chronoforms (это тоже бесплатно) будет делать именно то, что вы хотите.Вы можете сделать менее чем за 10 минут, включая время установки.Кроме того, вы получите валидацию и другие функции, такие как очистка данных, без необходимости писать сами.

Судя по опубликованному вами коду, вы идете по пути к атакам XSS и SQL-инъекциям.Сделайте себе одолжение и получите расширение, которое работает.

2 голосов
/ 24 февраля 2012

У вас есть ошибка в вашем SQL. Это:

$query = "INSERT INTO '#__pdfemails' ('emailaddress')
VALUES ('thevalue')";

должно быть так:

$query = "INSERT INTO '#__pdfemails' (emailaddress)
VALUES ('thevalue')";

Обратите внимание на отсутствие одинарных кавычек вокруг имени столбца.

Если вы когда-нибудь снова получите такую ​​ошибку, попробуйте сначала выполнить SQL непосредственно в MySQL. В среде Joomla может быть много точек, в которых ошибки становятся «скрытыми». Это очень разумно для живого сайта, хотя вы должны иметь возможность настроить сайт разработки так, чтобы он отображал ошибки SQL, чтобы упростить устранение неполадок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...