captcha no actua en...
Avisos
Vaciar todo

Hosting WordPress 70% dto Dominios promo

captcha no actua en formulario de contacto  

 
Gabriel
 Gabriel
Usuario eminente

Hola buenos días.
Un técnico de web empresa me ha remitido a este foro despues de plantearle una consulta a través del ticket número 8elNeh0Y942015. El problema es el siguiente:
Me están entrando en un montón de spams a través del formulario de contacto de prestashop 1.6. A pesar de tener instalado el captcha.
Cuando alguien envía un formulario, este es enviado sin necesidad de pulsar el cuadrito de "no soy un robot"
Podeis decirme como hacer para que sea obligatorio pulsar el check de captcha y en caso contrario que salga un mensaje de error?.

Muchas gracias

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 21/03/2018 10:20 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Gabriel.

¿ Utilizas algún modulo para el captcha ? ¿ Lo añadiste al formulario con código o con algún modulo ?

Te agradezco tu colaboración, contar con toda la información que puedas darnos nos ayudará a darte más rápidamente una solución.

Un saludo

ResponderCitar
Respondido : 21/03/2018 1:01 pm

Gabriel
 Gabriel
Usuario eminente

Pues hace mucho tiempo que diseñé la página y no lo recuerdo pero me imagino que introducí algún código porque no tengo instalado ningún módulo de captcha.

Lo que no recuerdo es el código que puse y en que archivo lo añadí....

Muchas gracias

ResponderCitar
Respondido : 21/03/2018 1:22 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Gabriel.

Revisa si en el archivo header.php que encontraras en themes -> contact.tpl Tu_plantilla, tienes añadido el codigo, si es así lo eliminas.

Accede a Google reCAPTCHA y vuelve a dar de alta el dominio, copia las claves publicas y privadas que te ofrece google al dar de alta el dominio en reCAPTCHA

.- Edita el archivo header.php que encontraras en la carpeta de tu plantilla y añade lo siguiente:


.- Edita el archivo contact-form.tpl qu eencontraras dentro de la carpeta de tu plantilla y añade lo siguiente:

Tienes que añadir la clave del sitio que obtuviste en google.

.- Accede al archivo ContactController.php que encontraras en controllers -> front -> ContactController.php y busca lo siguiente:

if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from))
	$this->errors[] = Tools::displayError('Invalid email address.');
else if (!$message)
	$this->errors[] = Tools::displayError('The message cannot be blank.');
else if (!Validate::isCleanHtml($message))
	$this->errors[] = Tools::displayError('Invalid message');
else if (!($id_contact = (int)(Tools::getValue('id_contact'))) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id))))
	$this->errors[] = Tools::displayError('Please select a subject from the list provided. ');
else if (!empty($fileAttachment['name']) && $fileAttachment['error'] != 0)
	$this->errors[] = Tools::displayError('An error occurred during the file-upload process.');
else if (!empty($fileAttachment['name']) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -4)), $extension) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -5)), $extension))
	$this->errors[] = Tools::displayError('Bad file extension');
else
{

Molificado por lo siguiente:

if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from))
	$this->errors[] = Tools::displayError('Invalid email address.');
else if (!$message)
	$this->errors[] = Tools::displayError('The message cannot be blank.');
else if (!Validate::isCleanHtml($message))
	$this->errors[] = Tools::displayError('Invalid message');
else if (!($id_contact = (int)(Tools::getValue('id_contact'))) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id))))
	$this->errors[] = Tools::displayError('Please select a subject from the list provided. ');
else if (!empty($fileAttachment['name']) && $fileAttachment['error'] != 0)
	$this->errors[] = Tools::displayError('An error occurred during the file-upload process.');
else if (!empty($fileAttachment['name']) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -4)), $extension) && !in_array( Tools::strtolower(substr($fileAttachment['name'], -5)), $extension))
	$this->errors[] = Tools::displayError('Bad file extension');
else if (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response'))))
	$this->errors[] = Tools::displayError('Captcha no verificado');
else
{

Como veras solo añadimos dos lineas al final del código:

else if (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response'))))
	$this->errors[] = Tools::displayError('Captcha no verificado');

Recuerda realizar una copia de los archivo antes de modificar nada.

Un saludo

ResponderCitar
Respondido : 21/03/2018 3:40 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Gabriel
 Gabriel
Usuario eminente

Hola. Muchas gracias por la respuesta.

He borrado el codigo (adjunto captura de pantalla del código eliminado) que aparece en el archivo contact-form.tpl que aparece en la ruta:

themes>mi_tema>contact-form.tpl

Pero me sigue apareciendo el captcha... he revisado cien veces los módulos por si hay alguno que lo introduzca pero no hay ninguno.
Me podéis decir en que otro sitio puede estar el código? El sitio está hecho con prestashop 1.6.1.4

Muchas gracias...

ResponderCitar
Respondido : 21/03/2018 4:17 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Según lo que entiendo quieres agregar captcha, no quitarlo

Lo que te comentó Pepe es que agregues captcha, podrías explicar porqué quieres eliminar ese código?

PD. El captcha debería estar antes del código del botón de enviar.

Saludos

ResponderCitar
Respondido : 21/03/2018 5:23 pm

Cursos Gratuitos WordPress

Gabriel
 Gabriel
Usuario eminente

Efectivamente he seguido todos los pasos indicados por pepe y ya funciona a la perfección. Me faltaba añadir el código en el archivo ContactControler.php

Doy el tema por cerrado y solucionado para que quien tenga el mismo problema sepa lo que hay que hacer.

Muchísimas gracias por vuestro excelente servicio.

ResponderCitar
Respondido : 21/03/2018 9:40 pm