• Publicidad
  • Contacto
Pixelco Tech News
  • Noticias
  • Video
  • Tecnología
    • Audio & Video
    • LifeStyle
    • Transformación Digital
  • Ciencia
    • Ciencia Ficción
  • Fotografía
  • Internet
    • Desarrollo/programación
    • Diseño
Sin resultados
Ver todos los resultados
Pixelco Tech News
  • Noticias
  • Video
  • Tecnología
    • Audio & Video
    • LifeStyle
    • Transformación Digital
  • Ciencia
    • Ciencia Ficción
  • Fotografía
  • Internet
    • Desarrollo/programación
    • Diseño
Sin resultados
Ver todos los resultados
Pixelco Tech News
Sin resultados
Ver todos los resultados

Tutorial – Validar formularios con PHP y Javascript

Diego CambiasoporDiego Cambiaso
30/04/2011
enDesarrollo/programación, Internet, Recursos
Tiempo de lectura5 minutos
0

Validar formularios con PHP y Javascript

Siempre que creemos un formulario web (HTML), hay que validar las entradas. Esto siempre se hace del lado del cliente o cliente-side y del lado del servidor o server-side.

Del lado del servidor utilizamos el lenguaje que esté desarrollado el sitio, por ejemplo si el sitio está desarrollado con PHP, hay que crear un mecanismo que lea y valide todos los datos que llegan en las variables del formulario usando algo así:

EntradasRelacionados

Samsung muestra la evolución de SmartThings y presenta nuevas experiencias de dispositivos en SDC22

4 Tips de Oracle para iniciarte en el mundo de la programación

...
<?php
if (!$_POST){
?>
   <?php aquí va le código del formulario que podría estar en un archivo include ?>
<?php
}else{    ?>
<?php
    $cuerpo = "Formulario de contacto\n";
    $cuerpo .= "Nombre: " . $_POST["nombre"] . "\n";
    $cuerpo .= "Email: " . $_POST["correo"] . "\n";
    $cuerpo .= "Comentarios: " . $_POST["comentario"] . "\n";
    mail("info@xxxxxxx.com",$_POST["correo"],$cuerpo);
    echo "<h4>Mesanje eviado correctamente. ¡Gracias por escribirnos!</h4>"; ?>
    <?php
   <?php aquí va le código del formulario que podría estar en un archivo include ?>
}?>
...

En el código la variable $_POST es la que contiene los datos enviados desde el formulario. En el caso que esté vacía, simplemente mostrará el formulario, caso contrario enviará estos datos por correo y volverá a mostrar el formulario en caso que el usuario necesite enviar otra consulta.

En código anterior no se realiza ninguna validación, simplemente se envían los datos por correo, pero estas podrían estar vacías ya que el usuario olvidó escribir algunos de los datos solicitados o presionó por error el botón de enviar.

Para asegurarnos que esto no ocurra, tendríamos que validar que las variable no estén vacías y que la información contenida sea la solicitada, para esto podríamos usar algún código similar al siguiente:

...
    if (empty($_POST['nombre'])) $error .= "<p class=\"error\">No has introducido tu nombre</p>";
    if (empty($_POST['correo'])) $error .= "<p class=\"error\">No has introducido tu dirección de correo</p>";
    if (empty($_POST['comentario'])) $error .= "<p class=\"error\">No has escrito nada en el cuerpo del mensaje</p>";
    $text_len = strlen($_POST['comentario']);
    if($text_len > 800) { $error .= "<p class=\"error\">El comentario debe ser de menor a 800, se ingresaron $text_len </p>"; }
    if(isset($_POST['correo']))
      {
        if (!comprobar_email($_POST['correo']))
        { $error .= "<p class=\"error\">La dirección de correo es incorrecta</p>"; }
      }// end of email check
    if($error) {
        echo $error;?>
...

Personalmente me gusta hacer la validación del lado del cliente por medio de Javascript. Igualmente siempre es necesario la validación del lado del servidor, ya que recordemos, que el Javascript podría estar deshabilidado del lado del cliente.

La validación con Javascript es muy sencilla, sólo hay que utilizar alguna biblioteca como:

  • JSValidate – Biblioteca Javascript para validar formularios
  • LiveValidation – Biblioteca Javascript para validar formularios
  • o Validanguage – Biblioteca orientada a objetos para validar formularios entre muchas otras.

Si bien todas ofrecen funcionalidades similares, en mis desarrollos utilizo JSValidate.

JSValidate es un biblioteca Javascript para validar formularios que funciona muy bien y es muy fácil de implementar.

Simplemente hay que subir el archivo JS a al servidor y enlazarlo desde la página del formulario:

<script src="javascripts/jsvalidate.js" type="text/javascript"></script>

Es este caso el archivo de la biblioteca es jsvalidate.js y está alojado en la carpeta javascripts.

Además, requiere enlazar otras dos bibliotecas:

<script type="text/javascript" language="javascript" src="scriptaculous/lib/prototype.js"></script>
<script type="text/javascript" language="javascript" src="scriptaculous/src/scriptaculous.js"></script>

Para validar los campos de un formularios debemos usar un código similar al siguiente:

<form name="input" enctype="multipart/form-data" method="post" action="http://direccion-del-sitio.com/?contacto.html">
<label for="nombre" accesskey="n">Nombre:</label>
<input type="text" name="nombre" class="jsrequired" />
<label for="correo" accesskey="c">Correo electr&oacute;nico:</label>
<input type="text" name="correo" class="jsrequired jsvalidate_email" />
<label for="comentario" accesskey="o">Consulta/comentario</label>
<textarea name="consulta" cols="30" rows="6" ></textarea>
<input type="submit" value="Enviar" />
</form>

En el caso del campo nombre, sólo hay que agregar una clase con el valor jsrequired, con esto decimos que este campo es requerido es decir, este no puede ser enviado vacío.

En el campo correo, el valor de la clase es jsrequired jsvalidate_email que es justamente para validar que la dirección de correo escrita, sea válida es decir, que corresponda la formato nombre@dominio.xxx.

La lista completa de los valores de las clases que podemos usar para validar los campos del formulario son:

  • jsrequired – valor obligatorio.
  • jsvalidate_number – valor numérico obligatorio.
  • jsvalidate_digits – sólo números.
  • jsvalidate_alpha – sólo letras.
  • jsvalidate_alphanum – sólo letras, números y guiones (underscores).
  • jsvalidate_email – dirección de correo.
  • jsvalidate_uscanzip – códigos postales de Estados Unidos.
  • jsvalidate_usstate – dos letras en mayúsculas para estado de Estados Unidos.
  • jsvalidate_usphone – números telefónicos en el formato de Estados Unidos.
  • jsvalidate_creditcard – números de tarjetas de crédito: VISA, MasterCard y American Express (sin espacios).
  • jsvalidate_ssn – número del seguro social de Estados Unidos.
  • select-notfirst – para usar en campos descolgables.

Además, tenemos que editar ciertos valores de variables contenidas en el archivo jsvalidate.js, que corresponden a los mensajes informativos mostrados (errores, dato esperado, etc.), esto hay que cambiarlo porque están en inglés así, si nuestro sitio, está en español estos se mostraran en dicho idioma.

Todo el código que se muestra en este tutorial ha sido simplificado por efecto didáctico y no se tiene en cuenta implementaciones de seguridad.

Tags: bibliotecasdesarrollo webformulariosformularios webhtmljavacriptJavascriptlibreriasPHPPHPprogramaciónRecursosscripttutorialTutorialesvalidarweb
Diego Cambiaso

Diego Cambiaso

Comunicador Social y Desarrollador de Software. Blogger desde el 2006, creador de Pixelco Tech News. Viajero y fotógrafo. Entusiasta del diseño, apasionado por la tecnología y el social media. EN-ES-IT

RelacionadoEntradas

Tutorial: análisis de la composición corporal con el Galaxy Watch4

08/12/2021

Cómo sacar provecho del asistente de voz del TV

23/08/2021
Remo Photo Recovery

Remo Photo Recovery – Cómo recuperar fotos borradas (review y tutorial)

10/08/2021

Útiles tips para usar Samsung DeX para PC

21/06/2020

C-Lab de Samsung recibe 29 premios CES a la Innovación

18/01/2023

CES 2023: Un futuro sostenible gracias a la conectividad

16/01/2023

Samsung comparte su visión para llevar la calma a la experiencia de los dispositivos conectados en CES 2023

11/01/2023

Estudio: Los relojes inteligentes ayudan a prevenir o reducir la obesidad

26/12/2022

Sáquele provecho a las características de un TV 8K

21/12/2022

Ventajas de un proyector portátil de 100 pulgadas

19/12/2022

Pixelco Tech

Pixelcoes sitio de noticias de tecnología, diseño y desarrollo web e Internet escrito por profesionales.

Objetivo de Pixelco

Informar, promocionar, proporcionar recursos y ayuda sobre el diseño y desarrollo web, estándares, Internet y tecnología.

Buscar

Sin resultados
Ver todos los resultados

© 2022 Pixelco Tech News - Internet & Tecnología - Por Diego Cambiaso.

  • Publicidad
  • Contacto
  • Política de Privacidad
  • Sobre Pixelco
  • Internet
    • Recursos
    • Diseño
    • Desarrollo/programación
  • Tecnología
  • Noticias
  • Fotografía

© 2022 Pixelco Tech News - Internet & Tecnología - Por Diego Cambiaso.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies Política de privacidad.
 

Cargando comentarios...