En programación y diseño web, un formulario es una interfaz que permite a los usuarios comunicarse con las personas que administran las páginas web. Estas formas o planillas digitales se usan para registramos en una web, para enviar un mensaje al administrador o para realizar algún tipo de procedimiento como solicitar una VISA, por ejemplo.

Los formularios necesitan de varios lenguajes para poder mostrarse al usuario y para que la base de datos del portal obtenga los datos introducidos en los campos de textos. Uno de esos lenguajes de programación es PHP.

PHP es el acrónimo de Hypertext Preprocessor, y se trata de un lenguaje de programación de propósito general y de código abierto que estará siempre del lado del servidor, con el fin que éste pueda procesar el texto plano en UTF-8.

Es común que los formularios que vemos en muchas webs hoy en día funcionen gracias al código PHP que contienen. El diseño puede estar a cargo de HTML5, CCS3 Y JavaScript, pero la lógica (comunicación entre cliente y servidor) se la da PHP.

Dentro del cuerpo de un código HTML estará incrustado el código PHP.

Ejemplo de formulario PHP

  • Ejemplos 1:

<!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN»

«http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»>

<html>

<head>

<title>Comprobar datos</title>

</head>

<body>

<h1>Tus Datos de suscripción: </h1>

<p>Estos son los datos que nos has enviado:</p>

<?php

echo «Nombre: «; echo $_POST[‘nombre’]; echo «<br/>»;

echo «apellidos: «; echo $_POST[‘apellidos’]; echo «<br/>»;

echo «E-mail: «; echo $_POST[‘email’]; echo «<br/>»;

echo «contraseña: «; echo $_POST[‘contras’]; echo «<br/>»;

echo «Sexo: «; echo $_POST[‘sexo’]; echo «<br/>»;

echo «Estudios: «; echo $_POST[‘estudios’]; echo «<br/>»;

echo «Aficiones: \»on\» seleccionado, sin marcar, no seleccionado<br/>»;

echo «Musica: «; echo $_POST[‘musica’]; echo «<br/>»;

echo «Deportes: «; echo $_POST[‘deportes’]; echo «<br/>»;

echo «Cine: «; echo $_POST[‘cine’]; echo «<br/>»;

echo «Libros: «; echo $_POST[‘libros’]; echo «<br/>»;

echo «Ciencia: «; echo $_POST[‘ciencia’]; echo «<br/><br/>»;

echo «Día de la semana: «; echo $_POST[‘dia’]; echo «<br/>»;

echo «Tu comentario: «; echo $_POST[‘comentario’]; echo «<br/>»;

?>

<p>Comprueba tus datos antes de enviarlos.</p>

<p>Los datos son correctos: <a href=»form.html»>Enviar</a>

<p>Los datos no son correctos: <a href=»enviar.html»>Volver a escribirlos</a>

 

</body>

</html>

El formulario anterior posee validaciones necesarias para saber si los datos introducidos están en el formato esperado (números en el campo de teléfono y no letras o letras en los campos de nombres, por ejemplo). Esto lo debe tener todo formulario para evitar inconvenientes.

  • Ejemplo 2:

<h2>Formulario:</h2>

<form action=»<?php echo htmlspecialchars($_SERVER[«PHP_SELF»]); ?>» method=»post»>

Nombre:

<input type=»text» name=»nombre» maxlength=»50″><br>

Contraseña:

<input type=»password» name=»password»><br>

Educacion:

<select name=»educacion»>

<option value=»sin-estudios»>Sin estudios</option>

<option value=»educacion-obligatoria» selected=»selected»>Educación Obligatoria</option>

<option value=»formacion-profesional»>Formación profesional</option>

<option value=»universidad»>Universidad</option>

</select> <br>

Nacionalidad:

<input type=»radio» name=»nacionalidad» value=»hispana»>Hispana</input>

<input type=»radio» name=»nacionalidad» value=»otra»>Otra</input><br>

Idiomas:

<input type=»checkbox» name=»idiomas[]» value=»español» checked=»checked»>Español</input>

<input type=»checkbox» name=»idiomas[]» value=»inglés»>Inglés</input>

<input type=»checkbox» name=»idiomas[]» value=»francés»>Francés</input>

<input type=»checkbox» name=»idiomas[]» value=»aleman»>Alemán</input><br>

Email:

<input type=»text» name=»email»><br>

Sitio Web:

<input type=»text» name=»sitioweb»><br>

// Botón de enviar

<input type=»submit» name=»submit» value=»Enviar»>

</form>

</body>

</html>

  • Ejemplo 3: código PHP para formulario donde se suben archivos:

$directorioSubida = «uploads/»;

$max_file_size = «51200»;

$extensionesValidas = array(«jpg», «png», «gif»);

if(isset($_POST[«submit»]) && isset($_FILES[‘imagen’])){

$errores = array();

$nombreArchivo = $_FILES[‘imagen’][‘name’];

$filesize = $_FILES[‘imagen’][‘size’];

$directorioTemp = $_FILES[‘imagen’][‘tmp_name’];

$tipoArchivo = $_FILES[‘imagen’][‘type’];

$arrayArchivo = pathinfo($nombreArchivo);

$extension = $arrayArchivo[‘extension’];

// Comprobamos la extensión del archivo

if(!in_array($extension, $extensionesValidas)){

$errores[] = «La extensión del archivo no es válida o no se ha subido ningún archivo»;

}

// Comprobamos el tamaño del archivo

if($filesize > $max_file_size){

$errores[] = «La imagen debe de tener un tamaño inferior a 50 kb»;

}

// Comprobamos y renombramos el nombre del archivo

$nombreArchivo = $arrayArchivo[‘filename’];

$nombreArchivo = preg_replace(«/[^A-Z0-9._-]/i», «_», $nombreArchivo);

$nombreArchivo = $nombreArchivo . rand(1, 100);

// Desplazamos el archivo si no hay errores

if(empty($errores)){

$nombreCompleto = $directorioSubida.$nombreArchivo.».».$extension;

move_uploaded_file($directorioTemp, $nombreCompleto);

print «El archivo se ha subido correctamente»;

}

}