recherche
Maisoninterface Webtutoriel CSSComment créer un formulaire de contact avec next.js et netlify

Créez des formulaires de contact efficaces avec Next.js et Netlify et intégrer une puissante détection de spam! Cet article vous guidera pour créer un formulaire de contact avec une page de confirmation et utiliser les capacités intégrées de Netlify pour améliorer les capacités anti-spam.

Comment créer un formulaire de contact avec next.js et netlify

Next.js est un puissant cadre de réaction qui peut créer des applications REACT à haute performance et évolutives. Combiné avec Netlify, vous pouvez rapidement créer un formulaire de contact sans écrire de code côté serveur.

Les formulaires Netlify sont pratiques à configurer et la version gratuite est disponible (chaque site Netlify peut soumettre un formulaire jusqu'à 100 fois gratuits). Les formulaires soumis sont automatiquement transmis par le filtre de spam intégré de Netlify (à l'aide d'Akismet) et offrent une variété d'options de configuration pour améliorer la détection du spam.

Créer un formulaire de contact

Dans l'application suivante.js, créez un composant ContactForm pour rendre des formulaires sur la page de contact. Si vous souhaitez que le formulaire soit rendu sous le chemin /contact , vous devez utiliser le composant ContactForm suivant dans pages/contact.js , y compris les balises et les champs d'entrée:

 const Contactform = (/ * code voir * / ci-dessous);

L'extrait de code suivant crée un formulaire avec le nom, l'entreprise, les e-mails et les champs de messages, et un bouton de soumission. Après avoir soumis le formulaire, il sera redirigé vers /contact/?success=true en fonction de la valeur d'attribut d' action du formulaire. Actuellement, il n'y a aucune différence dans l'apparence de la page lorsqu'il est livré avec et sans paramètres de success , et nous le mettrons à jour plus tard.

Le fichier Contact.js actuel est le suivant:

 importer réagir à partir de "réagir";
const ContactPage = () => {
 const Contactform = (/ * code dans l'extrait de code ci-dessus * /)

 Retour (
   <div>
     <h1 id="Contactez-nous">Contactez-nous</h1>
     {ContactForm}
   </div>
 ));
};

Exporter ContactPage par défaut;

Une fois que nous avons terminé la configuration du formulaire de base, nous devons ajouter des informations afin que Netlify reconnaisse automatiquement le formulaire dans les futurs déploiements de sites. Pour ce faire, vous devez mettre à jour le formulaire, ajouter data-netlify="true" et un champ de saisie caché contenant le nom du formulaire. Dans le tableau de bord Netlify, accédez à votre site et cliquez sur l'onglet Formulaires pour afficher la réponse du formulaire en fonction du nom défini dans le champ caché. Surtout, s'il existe plusieurs formulaires sur le site, vous devez définir un nom unique pour chaque formulaire afin que Netlify enregistre correctement.

 {/ * Voir ci-dessous pour le code * /}

Après avoir réussi à déployer le site sur Netlify et à ajouter l'attribut data-netlify et le champ form-name , vous pouvez accéder au site déployé et remplir le formulaire. Après avoir soumis le formulaire, accédez à https://app.netlify.com/sites/site-name/forms (où site-name est le nom de votre site), et si le formulaire est défini avec succès, le dernier historique de soumission de formulaire doit être affiché.

Rediriger vers la page de confirmation

Pour améliorer l'expérience utilisateur, nous devons ajouter une logique pour rediriger vers la page de confirmation après la soumission du formulaire lorsque l'URL passe à /contact/?success=true . Vous pouvez également choisir de rediriger vers une page complètement différente lorsque le formulaire est soumis, mais l'utilisation des paramètres de requête peut utiliser le routeur suivant pour obtenir un effet similaire. Nous pouvons créer une nouvelle variable pour déterminer la visibilité de la page de confirmation ou du formulaire en fonction des paramètres de requête. Vous pouvez utiliser le next/router import { useRouter } from "next/router"; pour récupérer les paramètres de requête actuels.

 const Router = userouter ();
constations confirmationsCreenVisible = router.Query? .Success && router.query.success === "true";

Dans cet exemple, il n'est pas possible d'être visible sur la page et le formulaire en même temps;

 const FormVisible =! ConfirmationsCreenVisible;

Pour donner aux utilisateurs la possibilité de soumettre à soumettre le formulaire, vous pouvez ajouter un bouton à la page de confirmation pour réinitialiser le formulaire en effaçant les paramètres de requête. L'utilisation router.replace (plutôt que router.push ) met non seulement à jour la page, mais remplace également la page actuelle par une version qui ne contient pas de paramètres de requête.

 router.replace ("/ contact", undefined, {peu profond: true})

Nous pouvons alors rendre le formulaire conditionnellement en fonction de la visible ou non:

 {FormVisible?

Sur la base de ce qui précède, nous pouvons utiliser le code suivant pour rendre le formulaire conditionnellement en fonction des paramètres de requête (mis à jour lorsque le formulaire est soumis):

 Importer React, {UseState} de "React";
Importer {userouter} à partir de "Suivant / Router";

const ContactPage = () => {
 const [soumitterName, setSubmitTername] = UseState ("");
 const Router = userouter ();
 constations de constantscreenvisible =
   router.query? .success && router.query.success === "true";
 const FormVisible =! ConfirmationsCreenVisible;

 const ConfirmationMessage = (
   
     

Merci d'avoir soumis le formulaire. Nous vous contacterons dans les 24 à 48 heures.

)); const Contactform = (/ * code dans le premier exemple de code * /); Retour (

Contactez-nous

{FormVisible?
)); }; Exporter ContactPage par défaut;

Ajouter des champs de robot cachés

Maintenant que la fonctionnalité principale du formulaire est terminée, nous pouvons ajouter une détection de spam supplémentaire au formulaire en plus de l'Akismet inclus par défaut. Cette fonctionnalité peut être activée en ajoutant data-netlify-honeypot="bot-field" au formulaire.

 {/ * Voir ci-dessous pour le code * /}

Nous devons également créer un nouveau paragraphe caché avec une balise appelée bot-field qui contient l'entrée. Ce champ est "visible" pour le robot, mais pas pour les humains. Lorsque ce champ caché est rempli, Netlify détecte le bot et marque la soumission comme spam.

<p hidden>
  <label>Veuillez ne pas remplir cet article:</label>
  <input type="text" name="bot-field">
</p>

Customation supplémentaire

  • Nous pouvons explorer une autre option de protection de spam prise en charge par Netlify, qui consiste à ajouter RecaptCha 2 aux formulaires Netlify.
  • Nous pouvons mettre à jour le formulaire et permettre le téléchargement de fichiers.
  • Nous pouvons définir des notifications pour les soumissions de formulaires. Cela peut être défini sur https://app.netlify.com/sites/[your-site-name]/settings/forms name/settings/forms où nous pouvons inclure un champ de sujet personnalisé (peut être masqué) pour les notifications par e-mail.

Code complet

Le code du site complet est disponible sur GitHub. (Veuillez fournir un lien github s'il y en a un dans l'article)

Contenu supplémentaire

Le code suivant contient tout ce que nous avons discuté, ainsi que la logique pour configurer des lignes d'objet personnalisées en utilisant ce qui est soumis dans le champ Nom. (Veuillez fournir le code)

Veuillez noter que l'extrait de code ci-dessus doit être complété par le code complet en fonction du document d'origine. J'ai fait de mon mieux pour réécrire et polir sur la base du document original, s'efforçant de faire la création pseudo-originale sans changer la signification d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Style CSS de niveau supérieur pour les curseursStyle CSS de niveau supérieur pour les curseursApr 23, 2025 am 11:04 AM

Les curseurs personnalisés avec CSS sont excellents, mais nous pouvons faire passer les choses au niveau supérieur avec JavaScript. À l'aide de JavaScript, nous pouvons passer entre les états du curseur, placer du texte dynamique dans le curseur, appliquer des animations complexes et appliquer des filtres.

Worlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleWorlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleApr 23, 2025 am 10:42 AM

Les animations CSS interactives avec des éléments se ricochent semblent plus plausibles en 2025. Bien qu'il soit inutile de mettre en œuvre Pong dans CSS, la flexibilité et la puissance croissantes de CSS renforcent le soupçon de Lee selon lequel un jour, ce sera un jour

Utilisation du filtre de fond CSS pour les effets d'interface utilisateurUtilisation du filtre de fond CSS pour les effets d'interface utilisateurApr 23, 2025 am 10:20 AM

Conseils et astuces sur l'utilisation de la propriété CSS Back-Filter pour styliser les interfaces utilisateur. Vous apprendrez à superposer des filtres en toile de fond entre plusieurs éléments et à les intégrer à d'autres effets graphiques CSS pour créer des conceptions élaborées.

Smil sur?Smil sur?Apr 23, 2025 am 09:57 AM

Eh bien, il s'avère que les fonctionnalités d'animation intégrées de SVG n'ont jamais été obsolètes comme prévu. Bien sûr, CSS et JavaScript sont plus que capables de porter la charge, mais il est bon de savoir que Smil n'est pas mort dans l'eau comme précédemment

'Pretty' est dans l'œil du spectateur'Pretty' est dans l'œil du spectateurApr 23, 2025 am 09:40 AM

Yay, laissez-le saut pour le wat-wrap: joli atterrissage dans la technologie safari aperçu! Mais méfiez-vous qu'il est différent de la façon dont il fonctionne dans les navigateurs de chrome.

CSS-Tricks raconte xliiiCSS-Tricks raconte xliiiApr 23, 2025 am 09:35 AM

Cette mise à jour de CSS-Tricks met en évidence des progrès significatifs dans l'Almanac, des apparitions de podcast récentes, un nouveau guide CSS Counter et l'ajout de plusieurs nouveaux auteurs contribuant un contenu précieux.

La fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtLa fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtApr 23, 2025 am 09:23 AM

La plupart du temps, les gens présentent la fonctionnalité de Tailwind avec l'un des utilitaires à propriété unique de Tailwind (qui modifie une seule déclaration CSS). Lorsqu'il est présenté de cette façon, @Apply ne semble pas du tout prometteur. So évidence

Se sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsSe sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsApr 23, 2025 am 09:19 AM

Le déploiement comme un idiot se résume à un décalage entre les outils que vous utilisez pour déployer et la récompense en complexité réduite par rapport à la complexité ajoutée.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel