2011-01-25 60 views
0

我一直在尋找網絡的問題的答案,但我似乎無法找到一個,即使它可能很簡單。Joomla模塊提交表單無法訪問數據庫

我有一個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類?
謝謝。

+0

這樣做不是很好的做法。您必須在虛擬網址上提交表單,並創建一個適用於此虛擬網址的插件。 – Gaurav 2011-01-25 05:50:55

回答

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中找到的內容。您可以添加一些簡單的安全措施,以確保表單正在從您的網站提交。

+0

謝謝,這解決了這個問題。欣賞它。 – Nathan 2011-01-26 23:58:04