Como bloquear URLs dentro dos campos do formulário

Introdução

Gostaria de bloquear URLs dentro de campos de formulário como os campos de texto de linha única e de texto de parágrafo? A maior parte do spam chega agora através de bots que tentam adicionar links ao seu formulário e, utilizando um pequeno script PHP, pode adicionar outra camada de proteção ao seu formulário, rejeitando qualquer submissão de formulário que tente chegar com um URL listado dentro dos campos de formulário Texto de linha única ou Texto de parágrafo. Neste tutorial, vamos orientá-lo em cada passo para impedir que URLs sejam colocados dentro desses campos.

Criar o seu formulário

Para o nosso exemplo, vamos criar um formulário de contacto simples para os campos Nome, E-mail, Como soube de nós (Texto de uma linha) e Comentário (Texto de parágrafo).

Se precisar de ajuda para criar o seu formulário, consulte esta documentação.

comece por criar o seu formulário e adicionar os seus campos

Adicionar o snippet de código para bloquear URLs

Agora é altura de adicionar o snippet que irá bloquear os URLs dentro do formulário.

Se precisar de ajuda para adicionar snippets ao seu site, consulte este tutorial.

/*
 * Block URLs from inside form on Single Line Text and Paragraph Text form fields
 *
 * @link https://wpforms.com/developers/how-to-block-urls-inside-the-form-fields/
*/
 
function wpf_dev_check_for_urls( $field_id, $field_submit, $form_data ) {

	if( strpos($field_submit, 'http') !== false || strpos($field_submit, 'www.') !== false ) {
		wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'No URLs allowed.', 'wpforms' );
		return;
	} 
	
}
  
add_action( 'wpforms_process_validate_textarea', 'wpf_dev_check_for_urls', 10, 3 );
add_action( 'wpforms_process_validate_text', 'wpf_dev_check_for_urls', 10, 3 );

Este snippet é aplicado automaticamente a todos os formulários e impedirá que qualquer campo de texto normal ou campo de área de texto (como Texto de parágrafo) permita a introdução de URLs dentro do campo.

bloquear urls dentro do formulário com este script PHP

E é tudo! Gostaria de bloquear também os palavrões nestes campos? Consulte o nosso artigo sobre Como bloquear envios de formulários que contenham palavrões.

Referências de ação: