Jump to content

[TUTORIAL PHP] Crear tu propio captcha simple


Mensajes recomendados

*Nuevos LINKS ( 02/05/2014 21:04 )

 

Buenas, soy TheSuzho y aca os traigo un tutorial hecho 100% por mi, podeis buscar por google que no vereis otro igual, si quereis mas tutoriales de algo referente a programacion web (html, css, php), o ayuda podeis pedirmelo en comentarios u otros medios.

 

Si no tienes ganas de ver el tutorial completo y quieres descargarlo: 

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

Para ver la demo de como funciona: 

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

Empecemos:

 

Lo primero de todo es crear el archivo .php donde vallamos a crearlo.

Agregamos los TAGS php para empeza

<?php?>

Paso 1: Preguntas y Respuestas

Ahora vamos a crear un array con las preguntas y las respuestas respectivamente.

$_A_CAP_SZ_ = array ('__PREGUNTAS__' => array (1 => 'Cuanto es 1 + 2',2 => 'Cuanto es 2 * 2'),'__RESPUESTAS__' => array (1 => 3,2 => 4),);

Para editar las preguntas y respuestas solo vale con cambiar la linea despues de =>, por ejemplo, añadimos una pregunta.

En este caso, como podeis ver, hay 2 preguntas, añadimos una nueva linea debajo de la pregunta 2

3 => 'Capital de españa'

Ahora como hemos creado otra linea, devemos asegurarnos de que la linea anterior acabe en coma, algo asi

1 => 'Cuanto es 1 + 2',2 => 'Cuanto es 2 * 2',3 => 'Capital de españa'

Ahora vamos a hacer lo mismo pero en el apartado respuestas, agregaremos la respuesta a la pregunta nº 3, en este caso, añadimos una nueva linea bajo la respuesta nº 2.

3 => 'Madrid'

Ahora como hemos creado otra linea, devemos asegurarnos de que la linea anterior acabe en coma, algo asi

1 => 3,2 => 4,3 => 'Madrid'

Paso 2: Obtener una pregunta aleatoria

Para obtener una pregunta aleatoria, basta con añadir abajo del array la siguiente linea:

DEFINE(aaii,rand(1,3));

Donde pone el numero 1, es el numero inicial de preguntas, y donde pone el 3, es el total de preguntas, solo editan eso y ya esta.

 

 

Paso 3: Crear la función que verifica si es o no correcto

Lo primero de todo es definir la funcion:

function _CHECK_CAPTCHA_($R,$rr){}

“$R´´ sera el resultado que manda el formulario, y “$rr´´ sera la respuesta, ahora vamos a convertir el texto a minusculas para evitar errores de minusculas y mayusculas, agregamos a la función:

$R = strtolower($R);$rr = strtolower($rr);

Ahora solo tenemos que hacer que la funcion nos devueva el resultado TRUE si es correcto y FALSE si es incorrecto, añadimos las siguientes lineas:

if ($R == $rr){return true;}else{return false;}

Os deve quedar una cosa asi:

function _CHECK_CAPTCHA_($R,$rr){$R = strtolower($R);$rr = strtolower($rr);if ($R == $rr){return true;}else{return false;}}

Paso 4: Reconocer cuando das click en comprovar y comprovar si es correcto

Para ello, creamos una nueva linea:

if (isset($_POST['_INPUT_CAPTCHA_'])){if (_CHECK_CAPTCHA_($_POST['_INPUT_CAPTCHA_'],$_A_CAP_SZ_['__RESPUESTAS__'][$_POST['_INPUT_CAP_RE_']]) == true){echo 'Captcha correcto – <a href="?reload">RELOAD PAGE</a>';}else{echo 'Incorrecto – <a href="?reload">RELOAD PAGE</a>';}}else{echo '<form method="post">'.$_A_CAP_SZ_['__PREGUNTAS__'][aaii].' <input type="text" value="" name="_INPUT_CAPTCHA_"><input type="hidden" value="'.aaii.'" name="_INPUT_CAP_RE_"><input type="submit" value="verificar"></form>';}

Esto lo que ara, es si das al boton de verificar, no mostrara el formulario, si no el resultado de si esta correcto o no.

Espero que os aya gustado y lo entendais bien.

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...