Saltar al contenido

Descargar sistema CAPTCHA en PHP

5 febrero, 2021
Crear un CAPTCHA en PHP.

En este post te enseñaré cómo es que puedes crear tu propio sistema antispam, haciendo un CAPTCHA en el lenguaje de programación PHP. ¡ENTRA!

INICIAMOS:

Vengo de nuevo con otro tutorial para los programadores, y hoy vamos a aprender a crear un CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart, por sus siglas en inglés), y es un sistema antispam para prevenir SPAM o impedir el acceso a robots del acceso a cierto lugar o ejecución de una cierta acción, así que si necesitas un CAPTCHA, estás en el lugar correcto.

Explicación de este archivo:

Este sistema se divide en 3 archivos:

  • index.php (contiene un formulario de prubea).
  • captcha.php (genera una imagen que tiene un texto aleatorio).
  • validar.php (obtiene lo que se va a hacer si el captcha es correcto o no).

SI NO QUIERES copiar el código, hasta abajo de este post te dejo un link de descarga a los archivos fuente del código.

Archivo index.php:

<!DOCTYPE html><!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>Aprendiendo algo con Master Coria</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> $(function(){ $("btn_recargar").click(function(){ document.location.reload(); return false; }); $("#btn_iniciar").click(function(e){ e.preventDefault(); var data = $('#frm').serialize(); $.ajax({ url: "validar.php", type: "post", data: data, success: function(res){ alert(res); } }); }); }); </script> </head> <body> <form id="frm"> <table> <tr> <td>Usuario: </td><td><input type="text" name="user" /></td> </tr> <tr> <td>Contraseña: </td><td><input type="text" name="pass" /></td> </tr> <tr> <td><img src="captcha.php" /></td><td><input type="text" name="captcha" /></td><td><button id="recargar">Recargar</button></td> </tr> <tr> <td><input type="submit" id="btn_iniciar" value="Login" /></td> </tr> </table> </form> </body></html>

Archivo captcha.php:

<?php header("content-type: imagen/png"); $imagen = imagecreate(90, 50); $color_fondo = imagecolorallocate($imagen, 59, 66, 255); $color_texto = imagecolorallocate($imagen, 255, 255, 255); function generar_caracteres($chars, $length){ $captcha = null; for($i=0;$i<$length;$i++){ $rand = rand(0, count($chars)-1); $captcha .= $chars[$rand]; } return $captcha; } $captcha = generar_caracteres(array(0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','h','x','z'), 4); setcookie('captcha', sha1($captcha), time()+60*3); imagettftext($imagen, 20, 10, 15, 38.5, $color_texto, "arial.ttf", $captcha); imagepng($imagen); ?>

Ahora, este es el archivo validar.php:

<?php if(isset($_POST)){ $captcha_cookie = $_COOKIE['captcha']; $captcha_user = $_POST['captcha']; if($captcha_cookie == sha1($captcha_user)){  echo "Correcta.";  setcookie("captcha", "", time()-3600);    /* = CORRECTA =   TU CONTENIDO A HACER ...  */ } else { /* = INCORRECTA = TU CONTENIDO A HACER ... */ echo "Incorrecta."; } } ?>

Si quieres entender el funcionamiento total de este sistema, te dejo los 2 video tutoriales del youtuber «PuroCódigo» (también te dejo el código fuente por si lo quieres tener ordenado en la parte inferior de la página):

Te recomendamos:  Cómo hacer un test de velocidad de Internet de forma rápida

#1:

#2:

Descargar sistema de CAPTCHA en PHP:

DescargarDescargar código fuente

Nota: los enlaces aquí contenidos están acortados usando nuestro acortador de enlaces (Master Coria URL Shortener).

¿Dudas, preguntas?
Espero haberte ayudado y espero que hayas concluido con la publicación. Si no entiendes algo, contacta a nuestro equipo usando el chat flotante (ubicado en la parte inferior derecha de tu pantalla) para dejarnos tu pregunta.

Puedes ver nuestros posts más recientes en nuestra página inicio del blog. Danos like en nuestra página de Facebook para que no te pierdas ninguna novedad.

¡BUEN DÍA Y SALUDOS POR PARTE DE NUESTRO EQUIPO!