October 11 2007
Verificando formularios de registro y comentarios en php
Disclaimer: Este es un artÃculo muy básico, por lo que algunos hardcore programadores y DJSOSO's podrÃan verlo como juegos de niños, si eres uno de esos, este artÃculo no es para tÃ.
Hoy les voy a explicar de una forma muy sencilla, una técnica que utilizan muchos sitios en sus formularios de registro y comentarios para evitar a los spam-bots y cosas similares. Se trata simplemente de obligar al usuario a digitar un número verificador de cuatro cifras generado aleatoriamente, asà que, abrimos nuestro editor favorito, y vamos a crear una sencilla función.
-
<?php
-
function validador()
-
{
-
return $num;
-
}
-
?>
Ahora, en cada formulario en el que vayamos a implementar esto, hemos de añadir un poco de código adicional, lo primero será, obviamente notificarle al usuario que tiene que escribir ese valor y de paso explicarle porque debe hacerle, pero también, usaremos un objeto tipo hidden para usarlo del otro lado del formulario. Veamos
-
<?php
-
$n = validador(); //aquà llamamos a nuestra función, no te olvides de hacer el include correspondiente
-
echo "<input type='hidden' name='verifica' value='$n' />";
-
?>
-
<p>Verificación:<strong><?php echo $n ?></strong>. <small>Escriba este valor en la caja de texto</small>
-
<input type="text" name="verifica_usuario" size="4" maxlength="4" /></p>
Ahora, del otro lado (es decir, cuando el formulario se procesa) simplemente revisamos que no haya quedado vacÃo el campo y que coincida con los dÃgitos generados (aquà es donde puedes pensar en AJAX si quieres).
Por supuesto, esto se puede implementar en un desarrollo propio o hacerle una modificación directa al formulario de comentarios de nuestro blog (sin necesidad de instalar un plug-in).





Oye, esto de aquÃ:
¿no se podrá leer en el código fuente de la pagina y sacar el valor sin conocerlo?
Imagino que no, pues seria una falla muy grande, pero desconozco como funciona. (Yes, I’m a n00b on this battelfield)
Gracias, me ayudó mucho mas de lo que imaginas.
(He entendido al fin como funciona lo de $_POST )
Hace un tiempo lei una manera muy ingeniosa de hacer una validacion por el estilo, pero era algo como aplicarle logica negativa a esto.
La idea era colocar un campo hidden(con CSS) en el formulario con label e ids que lo describieran como el campo para el nombre, de esta manera el usuario no lo veria, pero el bot si. Luego solo verificas si esta vacio o no, sino esta vacio es un bot, si esta vacio es un usuario y listo!
Evitas los odiosos captchas y demas sumas y cosas raras, y pues es una alternativa ^^
@Bleend: Las variables hidden si aparecen en el código fuente, pero miralo de está forma, es un valor que se regenera si recargas la página, por lo que no hay tanto problema. Pero siendo paranoico, puedes crear una sesión, guardar ese valor como variable de sesión y el usuario nunca la verá ni en el código fuente.
@Proz: Si es cierto, el capcha se me hace más engorroso.
No se como funciona eso de la variable de sesión. (mierda, hay tantas cosas que no se T_T)
De todas formas muy útil. (y)
Me parece que la variable de sesión es mejor que un campo “oculto”. De cualquier modo, cuando necesito que las cosas sean seguras, las valido contra info de base de datos o en úlrima instancia, puedes generar una cadena con tiempo, números y letras… maneras hay muchas.
Felicidades Auyama, estas són las cosas BÃSICAS que todos los dÃas la gente busca. Los complejos, somos menos