He agregado el resumen de google en el formulario de contacto, pero el valor también se envía sin captcha. He utilizado en mi página de contacto los siguientes códigos para captcha:
<div class="g-recaptcha" data-sitekey="XXXXXXXXXX"></div>
<script src='https://www.google.com/recaptcha/api.js'></script>
Estos dos códigos los he usado. por favor dime cómo puedo validar captcha.
magento-1.9
form-validation
contact-form
captcha
google-api
Manish Gaur
fuente
fuente
Respuestas:
Deberías probar este código: he estado usando esto en mi sitio.
fuente
Este script se utiliza para la validación de Google reCaptcha como una validación predeterminada de magento. por favor úsalo
fuente
Usé recaptcha en el formulario de contacto.
fuente
La solución de JavaScript aceptada arriba definitivamente NO es el camino a seguir en mi opinión. Cualquier bot que no esté usando JS (que es la mayoría de ellos) simplemente pasará por alto su validación y obtendrá todo el spam que está tratando de bloquear. Siempre siempre siempre validar en el servidor. La validación de JS es solo un primer paso de UX.
De todos modos, hay múltiples soluciones, pero esto es lo que funcionó para mí en Magento 1.9 después de muchas horas de investigación. Originalmente, esto se basó en la respuesta de Mike anterior, pero intercambia file_get_contents por cURL ya que la función anterior generalmente le dará errores de envoltura http dependiendo de la configuración de su servidor.
Cree su propio módulo creando una carpeta / aplicación / código / local / YourVendorName / ValidateCaptcha /
En su nueva carpeta ValidateCaptcha, agregue una carpeta Modelo con un archivo Customer.php. Esto se utilizará para anular el archivo principal Customer.php proporcionado por Magento.
Copie y pegue este código:
Ahora agregue una carpeta etc. a su módulo y cree un config.xml con lo siguiente:
A continuación, deberá agregar el JS al encabezado de su tema. En app / design / frontend / default / YOURTHEME / template / page / html / head.phtml agregue esto al final. Si no tiene este archivo, cópielo de los archivos base. Sin embargo, no sobrescriba los archivos base. ¡Siempre haz el tuyo!
Ahora en app / design / frontend / default / YOURTHEME / template / persistent / customer / form / register.phtml, agregue esto justo antes del div de conjunto de botones cerca de la parte inferior:
¡Casi termino! Ahora solo registre su nuevo módulo creando una aplicación / etc / modules / YourVendorName / ValidateCaptcha.xml con lo siguiente:
Reemplace YourVendorName con lo que desee. Su estructura final debería ser algo como:
fuente
Para validar captcha, cree un controlador de guardado para guardar sus valores de formulario y también la validación.
Asegúrese de haber reemplazado la clave del sitio y la clave secreta en los códigos de muestra anteriores.
fuente
NID
Parece que su fragmento de script reCaptcha funcionará, pero aclare si se ingresó en la fuente head.phtml de Magento. (¿o el form.phtml?) que se colocará justo debajo de Magento predeterminado pre PHP en tipo verde porque es a.
Pregunta al ingresar especialmente php ¿es una práctica habitual ingresarlo después de esa sección inmediata de comentarios php que Magento coloca en la parte superior de la mayoría de sus páginas fuente de plantillas como este ejemplo a continuación?
Código de descargo de responsabilidad de Magento aquí en las etiquetas php. ¿COLOCA EL RECAPTCHA AQUÍ script de fragmento aquí?
Además, ¿qué hace que este código de verificación de respuesta de reCaptcha en este video a continuación sea más adecuado para la estructura de métodos de Magento: este tutorial utiliza en la primera línea la línea $ reCaptcha = $ _POST ?
Alternativa de la última pregunta: ¿Qué sucede si uso la versión de php para hacer esto? La verificación de respuesta de reCaptcha se introduciría en el fragmento de código de php después de la sección de comentarios verdes de la plantilla predeterminada de magento superior de php como esta
Algún código no quiero que aparezcan mensajes en la parte frontal porque contactForm predeterminado ya da sus alertas rojas si el usuario no ingresa toda la información que dirá debajo de cada campo, solo quiero que reCaptcha funcione para este contactForm. Pero de una manera que lo entenderé para uso futuro también. ¿Tu camino es creado por ti mismo como desarrollador o programador?
fuente