目次
連絡先フォームを作成します
お問い合わせ
確認ページにリダイレクトします
非表示のロボットフィールドを追加します
さらなるカスタマイズ
完全なコード
追加コンテンツ
ホームページ ウェブフロントエンド CSSチュートリアル next.jsとnetlifyを使用して連絡先フォームを作成する方法

next.jsとnetlifyを使用して連絡先フォームを作成する方法

Mar 18, 2025 am 11:05 AM

next.jsで効率的な連絡先フォームを構築し、強力なスパム検出をネットライディングして統合します!この記事では、確認ページで連絡先フォームを作成し、Netlifyの組み込み機能を使用してスパムアンチスパム機​​能を改善するように導きます。

next.jsとnetlifyを使用して連絡先フォームを作成する方法

Next.jsは、高性能でスケーラブルなReactアプリケーションを構築できる強力なReactフレームワークです。 Netlifyと組み合わせることで、サーバー側のコードを作成せずに連絡先フォームをすばやく構築できます。

Netlifyフォームはセットアップに便利で、無料バージョンが利用可能です(各Netlifyサイトは最大100の無料時間からフォームを送信できます)。提出されたフォームは、Netlifyの内蔵スパムフィルター(Akismetを使用)を自動的に渡され、スパム検出を強化するためのさまざまな構成オプションを提供します。

連絡先フォームを作成します

next.jsアプリケーションで、 ContactFormコンポーネントを作成して、連絡先ページにフォームをレンダリングします。フォームを/contactパスの下でレンダリングする場合は、タグと入力フィールドを含むpages/contact.jsファイルの次のContactFormコンポーネントを使用する必要があります。

 const contactform =(/ * code see */ exlow);
ログイン後にコピー

次のコードスニペットは、名前、会社、電子メール、メッセージフィールドを備えたフォーム、および送信ボタンを作成します。フォームを送信した後、 /contact/?success=trueにリダイレクトされますaction現在、クエリパラメータがsuccessた場合とまったく伴わないページの見た目に違いはありません。後で更新します。

現在のContact.jsファイルは次のとおりです。

 「React」からのImport React;
const contactPage =()=> {
 const contactform =(/*上記のコードスニペットのコード*/)

 戻る (
   <div>
     <h1 id="お問い合わせ">お問い合わせ</h1>
     {contactform}
   </div>
 );
};

デフォルトの連絡先をエクスポートします。
ログイン後にコピー

基本フォームの設定が完了したら、Netlifyが将来のサイトの展開でフォームを自動的に認識するように、情報を追加する必要があります。これを行うには、フォームを更新し、 data-netlify="true"プロパティとフォーム名を含む非表示の入力フィールドを追加する必要があります。 Netlifyダッシュボードで、サイトに移動し、[フォーム]タブをクリックして、非表示フィールドに設定された名前に基づいてフォーム応答を表示します。重要なことに、サイトに複数のフォームがある場合は、各フォームに一意の名前を設定して、ネットライフを正しく設定する必要があります。

 {/*コードについては以下を参照*/}
ログイン後にコピー
ログイン後にコピー

サイトを正常に展開してNetLifyを展開し、 data-netlify属性とform-nameフィールドを追加した後、展開されたサイトにアクセスしてフォームに入力できます。フォームを送信した後、 https://app.netlify.com/sites/site-name/formssite-nameはサイト名)に移動し、フォームが正常に設定されている場合は、最新のフォーム提出履歴を表示する必要があります。

確認ページにリダイレクトします

ユーザーエクスペリエンスを改善するには、URLが/contact/?success=trueに変更されたときにフォームが送信された後、確認ページにリダイレクトするロジックを追加する必要があります。フォームが送信されたときにまったく異なるページにリダイレクトすることもできますが、クエリパラメーターを使用すると、次のルーターを使用して同様の効果を達成できます。クエリパラメーターに基づいて、確認ページまたはフォームの可視性を決定する新しい変数を作成できます。 import { useRouter } from "next/router"; next/routerルーターを使用して、現在のクエリパラメーターを取得できます。

 const router = userouter();
const cunsimationscreenvisible = router.query?.success && router.query.success === "true";
ログイン後にコピー

この例では、ページに表示されていると同時に、次のステートメントを使用して、フォームが表示されるかどうかを判断できます。

 const formvisible =!cumponationscreenvisible;
ログイン後にコピー

ユーザーにフォームを再提出するオプションを提供するには、クエリパラメーターをクリアしてフォームにボタンを追加してフォームをリセットできます。 router.replaceを使用する( router.pushではなく)ページを更新するだけでなく、現在のページをクエリパラメーターを含まないバージョンに置き換えます。

 router.replace( "/contact"、undefined、{shallow:true})
ログイン後にコピー

その後、フォームが表示されるかどうかに基づいて、フォームを条件付きでレンダリングできます。

 {formvisible?contachmessage}
ログイン後にコピー

上記に基づいて、次のコードを使用して、クエリパラメーターに基づいてフォームを条件付きでレンダリングできます(フォームが送信されたときに更新されます):

 「React」からReact、{UseState}をインポート。
"next/router"から{userouter}をインポートします。

const contactPage =()=> {
 const [submittername、setsubmittername] = uesestate( "");
 const router = userouter();
 const ConfirmenationScreenvisible =
   router.query?.success && router.query.success === "true";
 const formvisible =!cumponationscreenvisible;

 const commisationmessage =(
   
     

フォームを提出していただきありがとうございます。 24〜48時間以内にご連絡いたします。

); const contactform =(/*最初のコード例のコード*/); 戻る (

お問い合わせ

{formvisible?contachmessage}
); }; デフォルトの連絡先をエクスポートします。
ログイン後にコピー

非表示のロボットフィールドを追加します

フォームのコア機能が完全になったので、デフォルトに含まれるAkismetに加えて、フォームに追加のスパム検出を追加できます。この機能はdata-netlify-honeypot="bot-field"プロパティをフォームに追加することで有効にできます。

 {/*コードについては以下を参照*/}
ログイン後にコピー
ログイン後にコピー

また、入力を含むbot-fieldと呼ばれるタグを含む新しい非表示段落を作成する必要があります。このフィールドはロボットに「見える」が、人間には「見える」。この隠されたフィールドが入力されると、Netlifyはボットを検出し、提出物をスパムとしてマークします。

<p hidden>
  <label>このアイテムに記入しないでください:</label>
  <input type="text" name="bot-field">
</p>
ログイン後にコピー

さらなるカスタマイズ

  • Netlifyがサポートする別のスパム保護オプションを探索できます。これは、フォームをNetlifyに追加するためにRecaptcha 2を追加することです。
  • フォームを更新し、ファイルのアップロードを許可できます。
  • フォーム提出の通知を設定できます。これは、 https://app.netlify.com/sites/[your-site-name]/settings/forms

完全なコード

完全なサイトコードはGitHubで利用できます。 (記事に書かれたものがある場合は、githubリンクを提供してください)

追加コンテンツ

次のコードには、議論したすべてのコードと、名前フィールドで提出されたものを使用してカスタムサブジェクト行を設定するロジックが含まれています。 (コードを提供してください)

上記のコードスニペットには、元のドキュメントに従って完全なコードを補充する必要があることに注意してください。 私は元の文書に基づいて書き直して磨くように最善を尽くし、元の意味を変えずに擬似オリジナルの創造をするよう努めました。

以上がnext.jsとnetlifyを使用して連絡先フォームを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

静的フォームプロバイダーの比較 静的フォームプロバイダーの比較 Apr 16, 2025 am 11:20 AM

ここでは、「静的フォームプロバイダー」という用語を埋めてみましょう。あなたはあなたのHTMLを持ってきます

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 Apr 17, 2025 am 10:55 AM

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

HTMLダイアログ要素を使用したいくつかの実践 HTMLダイアログ要素を使用したいくつかの実践 Apr 16, 2025 am 11:33 AM

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

ペーパーフォーム ペーパーフォーム Apr 16, 2025 am 11:24 AM

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター 毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター Apr 17, 2025 am 11:26 AM

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? 「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? Apr 16, 2025 pm 12:04 PM

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

独自の非JavaScriptベースの分析をホストするためのオプション 独自の非JavaScriptベースの分析をホストするためのオプション Apr 15, 2025 am 11:09 AM

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています

See all articles