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:
  1. <?php
  2.     function validador()
  3.     {
  4.         $num = rand(1000,9999);
  5.         return $num;
  6.     }
  7. ?>

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:
  1. <?php       
  2.         $n = validador(); //aquí llamamos a nuestra función, no te olvides de hacer el include correspondiente
  3.     echo "<input type='hidden' name='verifica' value='$n' />";
  4. ?>
  5. <p>Verificaci&oacute;n:<strong><?php echo $n ?></strong>. <small>Escriba este valor en la caja de texto</small>
  6. <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).

PHP:
  1. <?php
  2. $v = true;
  3. if(strlen(trim($_POST["verifica_usuario"]))>0)
  4. {
  5.      if($_POST["verifica_usuario"]!=$_POST["verifica"])
  6.      {
  7.          $v = false;
  8.          echo "<p>Debe escribir el dígito verificador correcto.</p>";
  9.      }     
  10. }
  11. else
  12. {
  13.       $v = false;
  14.       echo "<p>Debe escribir el dígito verificador.</p>";
  15. }
  16. if($v)
  17. {
  18.      // Aquí se continua con el proceso
  19. }

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).

RSS
Búsqueda personalizada

Encuesta

  • ¿Qué te gustaría ver con más regularidad en el blog?

    View Results

    Loading ... Loading ...

Etiquetas