実践ガイド

静的HTMLサイトに、独自サーバーなしで問い合わせフォームを置く

サイトは静的なまま。ブラウザーが送信し、Formgongが問い合わせを受け取ります。

要点。 method=POST、Formgongの/submitを指定したaction、隠しフィールドaccess_keyを用意します。通常のHTMLフォームはJavaScriptなしで送信できます。受付サーバーはFormgongが運用します。

Formgong·

サイトのフォーム 名前 Email メッセージ 送信 Formgong Telegram 新しい問い合わせ 名前 · Email 受信箱で開く +メール通知
デザインはサイト側に残し、受付と通知はFormgongに任せます。

HTMLだけでは受信処理はできない

HTMLは入力欄を表示できますが、単独で問い合わせを保存したりメールを送ったりはできません。その部分をFormgongが担当します。ポートフォリオやサービス紹介など、テキスト中心のフォームに使えます。

既存のバックエンドに業務処理があるなら、そのまま利用する方法もあります。この例はフォームのためだけに新しいサーバーを用意しない方法です。

先にメール確認とキー取得

Formgongでフォームを作り、メールを確認してサイト接続画面からキーを取得します。fk_your_access_keyを置き換えてください。公開キーなのでHTMLに置けます。メール未確認では通知が保留になる場合があります。

問い合わせ欄に入れるコード

サイトの問い合わせ部分に挿入し、CSSクラスを加えて見た目を整えます。表示ラベルは変更できますが、フィールド名は維持してください。この例はファイルではなくテキストを送ります。

HTML
<form action="https://formgong.com/submit" method="POST">
  <input type="hidden" name="access_key" value="fk_your_access_key">
  <label>Name <input type="text" name="name" required></label>
  <label>Email <input type="email" name="email" required></label>
  <label>Message <textarea name="message" required></textarea></label>
  <div aria-hidden="true" style="position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden">
  <label>Leave this field empty<input type="text" name="botcheck" tabindex="-1" autocomplete="off"></label>
</div>
  <button type="submit">Send</button>
</form>

送信を決める三つの属性

actionが送信先、method="POST"が送信方法、nameが値の名前です。idだけでは足りません。電話番号にはname="phone"などを追加できます。

botcheckはBot対策の隠し欄です。画面外に置き、空のままにします。入力されると迷惑送信として通知されないことがあります。

送信後のページを決める

初期設定ではFormgongの結果ページに移動します。独自の完了ページを使うなら、HTTPSの完全なURLを設定してください。_redirectでも指定できますが、コード側URLを無視する設定なら管理画面が優先されます。

ページを移動せず表示を更新するにはfetchが必要です。応答確認の例を参照できます。

公開ドメインで最後の確認

見分けやすいテスト文を送り、正しいフォームの記録とメール、迷惑メールを確認します。スマートフォンで入力欄、ボタン、完了ページも確認しましょう。追加通知はTelegramガイドで設定できます。

対策を有効にしたらコードも更新

Turnstileにはウィジェットとcf-turnstile-responseが必要です。この例の隠し欄だけでは代わりになりません。最新例を管理画面から取得します。許可ドメインを設定する場合は、公開先を含めてください。編集画面のプレビューは別ドメインの場合があります。

よくある質問

JavaScriptは必須ですか?

通常のPOSTには不要です。ブラウザーが送信し、結果ページを開きます。

PHP対応のホスティングが必要ですか?

不要です。Formgongがデータを処理するため、静的ホスティングを使えます。

フィールドを増やせますか?

name属性のあるテキスト欄を追加できます。この例はファイルアップロードを含みません。

例にTurnstileは含まれますか?

隠し欄による対策のみです。Turnstileを有効にした場合は、最新のウィジェットとトークン送信を追加します。

参考資料・ドキュメント

このガイドの公式資料: MDN: sending form data. Formgongドキュメント, データの保存場所.

Markdownで読む
← ブログに戻る