web-dev-qa-db-fra.com

Ajouter captcha au formulaire Web

Je travaille sur un projet drupal 8, j'ai créé un formulaire Web et j'essaie d'associer un captcha à mon formulaire Web à l'aide du module contrib captcha. J'ai un modèle personnalisé pour mon formulaire Web dans lequel Je rend les champs du formulaire Web. J'ai associé le captcha au formulaire Web sous/admin/config/people/captcha/captcha-points et test en tant qu'utilisateur anonyme, il est toujours impossible d'associer captcha au formulaire Web.

  • Dois-je imprimer captcha dans mon fichier de modèle de formulaire Web? Dans l'affirmative, comment le faire?
  • Dois-je ajouter un élément Captcha à mes champs de formulaire Web? Si tel est le cas, cet élément utilise-t-il par défaut les paramètres du module contrib captcha?

Toute aide est appréciée.

[~ # ~] mise à jour [~ # ~]

Voir comment remplacer le tamplate du formulaire Web ici

1
MiharbKH

Pour captcha protéger un formulaire Web, vous DEVEZ y ajouter un élément captcha. Lorsque le module contrib captcha est activé sur votre site, le captcha disponible challenge types sont disponibles pour une utilisation par formulaire Web.

Le modèle twig file est principalement destiné aux pupes de conception.

Si le placement de captcha dans le formulaire ne vous convient pas, vous devez copier le modèle de formulaire Web par défaut à partir de /modules/contrib/webform/webform.html.twig à votre thème /themes/custom/MYTHEME/templates/webform--WEBFORM_MACHINE_NAME.html.twig et peut-être placer chaque élément séparément.

Le défaut webform.html.twig est

<form{{ attributes }}>
  {{ title_prefix }}
  {{ children }}
  {{ title_suffix }}
</form>

Et dans notre propre exemplaire, nous devrions retirer {{ children }} et remplacer par des éléments individuels, mais nous devons également nous assurer que les identifiants et les actions du formulaire sont inclus manuellement et que le modèle final devrait ressembler à ceci

<form{{ attributes }}>
  {{ title_prefix }}
  {{ element.elements.first_name }}
  {{ element.elements.last_name }}
  {{ element.elements.captcha }}

  {# necessary elements #}
  {{ element.form_build_id }}
  {{ element.form_id }}
  {{ element.actions }}

  {{ title_suffix }}
</form>

captcha par exemple est le nom de la machine du champ captcha

2
GiorgosK