Форма отправки модуля Joomla не может получить доступ к базе данных - PullRequest
0 голосов
/ 25 января 2011

Я искал в сети ответ на свой вопрос, но я просто не могу его найти, хотя, возможно, он довольно прост.

У меня есть модуль joomla, который регистрирует пользователей наинформационный бюллетень, при нажатии кнопки отправки я перехожу к файлу submitsignup.php.Я делаю это, используя значение действия формы следующим образом:

form action="modules/mod_cmsnewslettersignup/otherfiles/submitsignup.php" method="post" id="subForm"  

В этом файле submitsignup.php я не могу получить доступ к любым классам joomla, таким как:

$db = JFactory::getDBO();  

Я знаю, что яЯ не могу получить доступ к любым классам Joomla, потому что я сделал прямой доступ к файлу submitsignup.php, но мне было интересно, как мне получить доступ к этому файлу, чтобы я мог иметь доступ ко всем классам Joomla?
Спасибо.

1 Ответ

0 голосов
/ 25 января 2011

Если вы перезагружаете страницу при отправке формы, то существует простое решение, которое решает как проблему использования прямого URL-адреса, так и необходимость загрузки фреймворка Joomla в этот файл.В основном измените код своего модуля на что-то вроде этого -

if ($_POST["formsubmitted"]){
    the code you run when the form is submitted
    echo success or failure message
} else {
 the code you run to display the form
    <form action="<?php echo JURI::current(); ?>" method="post">
    <input type="hidden" value="true" name="formsubmitted">
}

По сути, вы отправляете форму на страницу, которая ее отображает.Затем в вашем модуле вы добавляете обработчик для обработки отправленной формы или отображения формы в зависимости от того, что вы найдете в $ _POST.Вы можете добавить простую защиту, чтобы убедиться, что форма отправляется с вашего сайта.

...