Joomla模块提交表单无法访问数据库

时间:2011-01-25 01:12:46

标签: forms module joomla submit

我一直在网上寻找我的问题的答案,但我似乎无法找到一个,即使它可能很简单。

我有一个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 :(得分:0)

如果您在提交表单时正在重新加载页面,那么有一个简单的解决方案可以解决使用直接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中找到的内容。您可以添加一些简单的安全性,以确保从您的网站提交表单。