Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 26 Julio 2020, 11:06 am



Título: [Pregunta]: ¿Cómo puedo hacer esto con los recapchas de google?
Publicado por: Leguim en 26 Julio 2020, 11:06 am
Estoy hace varias horas con un código que creo lo estoy escribiendo bien pero no me funciona y no termino más...

Básicamente estoy intentando detectar cuando el usuario verifica el recaptcha, pero en "tiempo real" quiero decir que el procedimiento es que cuando el usuario verifica un recaptcha al momento el sistema lo detecta y no tengo que esperar a darle click a un botón...

básicamente investigando me encontré que google recaptcha puede capturar tres respuestas por medio de atributos que uno le pone al captcha...

El primero es data-callback="x" => detecta cuando un usuario valida un captcha,
el segundo data-error-callback="y" => detecta cuando ocurre un error como por ejemplo la perdida de conexión,
y por último data-expired-callback="z" => detecta cuando expira el tiempo y el captcha vuelve a como estaba antes...


Bueno teniendo en cuenta estos puntos estoy intentando hacer esto,


HTML
Código
  1.         <form method="post">
  2. <input type="text" name="">
  3. <div class="g-recaptcha input_captcha" data-callback="" data-error-callback="" data-expired-callback="" data-sitekey="CLAVE_DEL_SITIO"></div>
  4. <button type="submit" name="enviar">enviar</button>
  5. </form>
  6.  

javascript
Código
  1. function Prepare_Recaptcha(position)
  2. {
  3.        var input_captcha = document.querySelectorAll('.input_captcha'); // obtengo todos los captchas html
  4.  
  5.                if(input_captcha.length > position)
  6. {
  7. input_captcha[position].setAttribute('data-error-callback', function() // error connection
  8. {
  9. input_captcha[position].style.border = '1px solid red';
  10. alert('No se puede conectar a reCAPTCHA. Revisa la conexión y vuelve a intentarlo.');
  11. });
  12.  
  13. input_captcha[position].setAttribute('data-callback', function() // recaptcha verified
  14. {
  15. input_captcha[position].style.border = 'none';
  16. });
  17.  
  18. input_captcha[position].setAttribute('data-expired-callback', function() // recaptcha expired
  19. {
  20. input_captcha[position].style.border = '1px solid red';
  21. });
  22. }
  23. }
  24.  
  25. Prepare_Recaptcha(0); // preparo el primer captcha, si una página tuviera más entonces iría incrementando los valores o mejor aún lo hago con un for para automatizar la tarea y hacerlo más dinámico...
  26.  


Título: Re: [Pregunta]: ¿Cómo puedo hacer esto con los recapchas de google?
Publicado por: Leguim en 27 Julio 2020, 21:44 pm
Si esta manera es dificil de enteder tamb me ayudaria si puedo meter una función que reciba al menos un parametro data-callback="alert(1);" pero solamente me deja funciones sin parametros es decir data-callback="alert"