2011-01-25 4 views
0

私の質問に対する答えをネットで検索してきましたが、おそらくかなりシンプルですが、見つけられないようです。Joomla module submit formはデータベースにアクセスできない

ユーザーにニュースレターを登録するjoomlaモジュールがあります。送信ボタンをクリックするとsubmitsignup.phpファイルに移動します。私はアクセスできないことを知っている

$db = JFactory::getDBO(); 

:のような、私は任意のJoomlaのクラスにアクセスすることはできません。このsubmitsignup.phpファイル内

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

:私はこのようにようにフォームアクション値を使用してください私はsubmitsignup.phpファイルに直接アクセスしたので、どんなjoomlaのクラスも、私はどのように私はすべてのJoomlaのクラスにアクセスできるようにこのファイルにアクセスするのだろうか?
ありがとうございます。

+0

そのようにするのは良い方法ではありません。ダミーURLにフォームを提出し、このダミーURLで動作するプラグインを作成する必要があります。 – Gaurav

答えて

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