2012-02-23 11 views
1

私はフロントエンドの開発者ですので、私のPHPは少し欠けていて、私は立ち往生しています。
フォームからJoomlaデータベースにデータを書き込もうとしています。
これは唯一のメールアドレスなので、複雑ではありません。私は電子メールアドレスを保持するためにデータベースにフォームとテーブルを作成しました。しかし、私はそれをデータベースに書き込むことはできませんし、私は何が欠けているのか分かりません。
コードにどのクラスを含める必要があるのか​​よくわかりません。私はJFactoryがオブジェクトではないことを私に伝えるエラーは出ませんが、joomla/factoryを含めていますが、他に何かを含める必要があるかどうかはわかりません。Joomlaデータベースへの書き込み

は、ここに私の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(); 

私はすべてのエラーのいずれかの種類を得ることはありませんが、それはデータベースへの書き込みではないです。

誰でも助けてください。 http://extensions.joomla.org/extensions/contacts-and-feedback/forms

フォームビルダーの2ページがあります -

+0

どのエラーが表示されますか?あなたは警告を受けていますか? – hakre

+0

ああ、私はVALUESに "thevalue"を書き込んで、それを書いているかどうかを確認しましたが、それはありません: -/ –

+0

@hakre私はまったくエラーが出ません。 –

答えて

2

SQLにエラーがあります。この:

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

列名の前後に単一引用符がないことに注意してください。

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

はこれでなければなりません。

このようなエラーが発生した場合は、まずMySQLで直接SQLを実行してみてください。 Joomlaの環境では、エラーが「非表示」になる点がたくさんあります。ライブサイトでは非常に賢明ですが、トラブルシューティングを容易にするためにSQLエラーを表示するように開発サイトを構成できる必要があります。

+0

BTW、あなたのコード内の穴。サードパーティ製の添付ファイルを入手することについて完全に合意しているわけではありません。何が最も理にかなっていますが、適切に行うようにしてください。 –

+0

ありがとう@ボビージャック。それはそれだった。今はうまくいく。 –

5

ここではあなたのために簡単な答えです。私はChronoformsを知っています(それも無料です)あなたが望むものを正確に行うでしょう。あなたはインストール時間を含めて10分以内で実行できます。さらに、自分で書かなくても、データの衛生状態などの検証やその他の機能を利用できます。

あなたが投稿したコードから判断すると、XSS攻撃とSQLインジェクション攻撃の方向に向かっています。あなた自身に恩恵を与え、機能する拡張機能を手に入れましょう。

+0

ありがとう@Brent Friar、しかし私はChrono Formsが私が必要とすることをするかどうか分からない。私はそれも数回前に使ったことがあるが、このためにはPDFのダウンロードを許可するために電子メールアドレスを取る必要がある。あなたの電子メールを送信したことを覚えておくためにクッキーを設定してください。その目的のためにカスタマイズしておく必要があります: –

+0

ChronoFormsはこれを絶対に行います。 GreyHeadのフォーラムでは、発信電子メールに静的な添付ファイルを簡単に追加できるようになりました。次にカスタムコードイベントを使用してクッキーを設定します。その他はすべて組み込まれています。 –

関連する問題