web-dev-qa-db-ja.com

PHPMailer経由でフォームデータを送信する - 操作方法 PHP フォームからのスクリプト

提供する上でいくつかの簡単なポイント...

WordPressページからPHPスクリプトを実行したいのですが、スクリプトを保存するのに最適な場所はどこですか?このスクリプトは、フラットなHTMLディレクトリ構造の中で、WordPress以外の環境を使用しても完全に機能します。

そして私は次のコードを使用してページからそれを実行したいです。

<form class="contact_form" form action="phpmailersub.php" method="post" enctype="multipart/form-data" name="contact_form" onsubmit="return validateForm()">

その後、何がaction = "file"の形式になりますか?

現在、送信アクションはhttp://current/route/to/contact-test/phpmailersub.phpページを検索していますが、明らかに、WordPressはそれを見つけることができません。

どうぞよろしくお願いします。私が私の質問を明確にするために何かをすることができるならば、またはあなたが追加資料を必要とするならば、私は助けるために最善を尽くします。

UPDATE

現在のところPHPファイル(phpmailersub.php)とclass.phpmailer.phpがあります。 http://damtech.it/demo/etap/wp-content/ plugins/phpmailersub.php

私の現在のコードは次のようになります。

<form class="contact_form" action="&lt;?php bloginfo('http://damtech.it/demo/etap/wp-content/plugins/'); ?&gt;&lt;p&gt;/phpmailersub.php" enctype="multipart/form-data" method="post" name="contact_form" onsubmit="return validateForm()">
<table class="contact">
<tbody>
<tr>
<td class="third"><input type="text" name="cf_mercury" required="" /></td>
<td><span style="color: #3c4247;">   Name</span><span style="color: #3492d1;">*</span></td>
</tr>
<tr>
<td class="third"><input type="email" name="cf_jupiter" required="" />
<span class="form_hint">Correct format "[email protected]"</span></td>
<td>   <span style="color: #3c4247;">E-mail</span><span style="color: #3492d1;">*</span></td>
</tr>
<tr>
<td colspan="2"><textarea name="cf_uranus" required="" rows="6"></textarea></td>
</tr>
</tbody>
</table>
<table class="contact">
<tbody>
<tr>
<td width="50%"><button class="submit" onclick="document.getElementById('contact_form').submit()" type="submit">Send message</button></td>
<td style="text-align: right;" width="50%"><span class="c-clear"><button class="reset" style="color: #3c4247; letter-spacing: -0.5px;" onclick="document.getElementById('contact_form').reset()" type="reset">reset</button></span></td>
</tr>
</tbody>
</table>
</form>
2
Paul

あなたは実際にあなたの最初の試みに近いです。

私のお勧めは、WPルートに "scripts"というフォルダーを作成し、PHPスクリプトファイルと添付ファイルをここに置くことです。スクリプトは「フラットHTMLファイル構造」と同じファイルパスを共有しないため、action属性でフルパスを宣言する必要があります。

あなたの行動コードはaction="http://damtech.it/demo/etap/scripts/phpmailersub.php"になります

それは簡単です。プラグインを作成する必要はまったくありません(ただし、これをお勧めします)。添付ファイルパス(サーバーパス)、ページの指示などに関して行われた変更に対応するためにphpmailersub.php内の詳細を変更することを忘れないでください。

1
BarmyArmy

PHPファイルを直接呼び出さないでください。いくつかの設定では プラグインディレクトリが別のドメイン にあるかもしれないので、これは壊れます、そしてあなたのファイルは今WordPressコンテキストなしで動作するでしょう。

現在のURLをフォームアクションURLまたはadmin-post.php )として使用し、リクエストがPOSTリクエストであるかどうかをテストし、フォーム送信を処理します。その後、 303ステータスヘッダ を付けて元のページにリダイレクトします。

3
fuxia

あなたのニーズに合ったコンタクトフォームプラグインがないと仮定して、Wordpressでそれをするための正しい方法はあなたのフォームを含みそして処理するあなたのテーマに適切なページテンプレートを書いて追加することです。完了したら、フォームを表示するページをページテンプレートに関連付けます。その後、アクションパスは単に ""になります。

2
Mark Kaplun