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/forms
( site-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 =(); const contactform =(/*最初のコード例のコード*/); 戻る ( フォームを提出していただきありがとうございます。 24〜48時間以内にご連絡いたします。
); }; デフォルトの連絡先をエクスポートします。お問い合わせ
{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 サイトの他の関連記事を参照してください。

あなたが考えたことのない他の何かであることが判明したそれらの不可能な問題の1つをトラブルシューティングすることがどのように見えるか。

@keyframesandcsstransitionsdifferincomplexity:@keyframesallowsfordeTailedAnimationのシーケンス、whilecsstransitionshandlesimplestatechanges.usecsstransitionsは、ButtonColorChanges、および@keyframesforintricateanimationslikerotatingingspinnnersを使用します。

私は知っています、私は知っています:たくさんのコンテンツ管理システムオプションが利用可能であり、私はいくつかテストしましたが、実際にはY&#039;知っているものはありませんでしたか?奇妙な価格設定モデル、困難なカスタマイズ、一部は全体になることさえあります&

CSSファイルをHTMLにリンクすることは、HTMLの一部で要素を使用することで実現できます。 1)タグを使用して、ローカルCSSファイルをリンクします。 2)複数のタグを追加することにより、複数のCSSファイルを実装できます。 3)外部CSSファイルは、そのような絶対URLリンクを使用します。 4)ファイルパスとCSSファイルの読み込み順序の正しい使用を確認し、パフォーマンスを最適化すると、CSSプリプロセッサを使用してファイルをマージできます。

FlexBoxまたはグリッドの選択は、レイアウト要件によって異なります。1)FlexBoxは、ナビゲーションバーなどの1次元レイアウトに適しています。 2)グリッドは、雑誌のレイアウトなどの2次元レイアウトに適しています。この2つは、レイアウト効果を改善するためにプロジェクトで使用できます。

CSSファイルを含める最良の方法は、タグを使用してHTMLパーツに外部CSSファイルを導入することです。 1.タグを使用して、外部CSSファイルを導入します。 2。小さな調整のために、インラインCSSを使用できますが、注意して使用する必要があります。 3.大規模プロジェクトでは、@Importを介して他のCSSファイルをインポートするために、SASS以下などのCSSプリプロセッサを使用できます。 4。パフォーマンスのために、CSSファイルをマージし、CDNを使用し、CSSNANOなどのツールを使用して圧縮する必要があります。

はい、Youはrelearnbothlexboxandgrid.1)FlexBoxisidealforone-Dimensional、FlexiblleayoutslikenavigationMenus.2)Gridexcelsintwo-digsignssuchasmagazinelayouts.3)Bothenhanceslaysutibulivedibulisunivedivition、floctonsulururを

独自のコードをリファクタリングするのはどのように見えますか?ジョン・レアは、彼が書いた古いCSSアニメーションを選び、それを最適化するという思考プロセスを歩きます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
