Acceso a formularios desde PHP
FILE
< FORM ACTION="procesa.php" METHOD="post
ENCTYPE="multipart/form-data">
< INPUT TYPE="file" NAME="fichero">
< /FORM>
Acceso a formularios desde PHP
HIDDEN
< ?PHP
print(< INPUT TYPE=hidden NAME=username VALUE=$usuario>n);
?>
< ?PHP
print ($username);
//print ($_REQUEST [username]);
?>
Acceso a formularios desde PHP
PASSWORD
Contraseña: < INPUT TYPE="password" NAME="clave">
< ?PHP
print ($clave);
//print ($_REQUEST [clave]);
?>
Acceso a formularios desde PHP
SUBMIT
< INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos">
< ?PHP
if ($enviar)
print ("Se ha pulsado el botón de enviar");
//if ($_REQUEST [enviar])
//print ("Se ha pulsado el botón de enviar");
?>
Acceso a formularios desde PHP
SELECT simple
< SELECT NAME="titulacion">
< OPTION VALUE="II" SELECTED>Ingeniería Informática
< OPTION VALUE="ITIG">Ingeniería Técnica en Informática de Gestión
< OPTION VALUE="ITIS">Ingeniería Técnica en Informática de Sistemas
< /SELECT>
< ?PHP
print ($titulacion);
//print ($_REQUEST [titulacion]);
?>
Acceso a formularios desde PHP
SELECT múltiple
< SELECT MULTIPLE SIZE="3" NAME="idiomas[]">
< OPTION VALUE="ingles" SELECTED>Inglés
< OPTION VALUE="frances">Francés
< OPTION VALUE="aleman">Alemán
< OPTION VALUE="holandes">Holandés
< /SELECT>
< ?PHP
$n = count ($idiomas);
for ($i=0; $i< $n; $i++)
print ($idiomas[$i]< BR>n);
//foreach ($_REQUEST[idiomas] as $idioma)
//print ($idioma< BR>n);
?>
Acceso a formularios desde PHP
TEXTAREA
< TEXTAREA COLS=30" ROWS=4" NAME="comentario">
Este libro me parece …
< /TEXTAREA>
< ?PHP
print ($comentario);
//print ($_REQUEST [comentario]);
?>
Acceso a formularios desde PHP
Ejercicio 2: programa que muestra los datos introducidos desde un formulario
Ilustra cómo acceder a los valores introducidos desde todos los tipos de elementos de entrada de un formulario, con excepción de los tipos BUTTON y FILE, que se tratan en ejercicios posteriores
El formulario de PHP
La forma habitual de trabajar con formularios en PHP es utilizar un único programa que procese el formulario o lo muestre según haya sido o no enviado, respectivamente
Ventajas:
Disminuye el número de ficheros
Permite validar los datos del formulario en el propio formulario
Procedimiento:
si se ha enviado el formulario:
Procesar formulario
si no:
Mostrar formulario
fsi
El formulario de PHP
Para saber si se ha enviado el formulario se acude a la variable correspondiente al botón de envío. Si este botón aparece de la siguiente forma en el formulario HTML:
< INPUT TYPE="SUBMIT" NAME="enviar VALUE="procesar">
entonces la condición anterior se transforma en:
if (isset($enviar))
o bien
if ($enviar == procesar)
El formulario de PHP
Ejercicio 3: formulario de PHP
Ilustra cómo crear páginas multipropósito que sirven tanto para mostrar un formulario como para procesarlo
Subida de ficheros al servidor
Para subir un fichero al servidor se utiliza el elemento de entrada FILE
Hay que tener en cuenta una serie de consideraciones importantes:
El elemento FORM debe tener el atributo ENCTYPE="multipart/form-data
El fichero tiene un límite en cuanto a su tamaño. Este límite se fija de dos formas diferentes:
En el fichero de configuración php.ini
En el propio formulario
Subida de ficheros al servidor
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use
; system default if not specified).
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
php.ini
formulario
< INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE='102400'>
< INPUT TYPE=FILE NAME="fichero">
Subida de ficheros al servidor
Consideraciones (cont)
Debe darse al fichero un nombre que evite coincidencias con ficheros ya subidos. Por ello, y como norma general, debe descartarse el nombre original del fichero y crear uno nuevo que sea único
El fichero subido se almacena en un directorio temporal y hemos de moverlo al directorio de destino usando la función move_upload_file()
Procedimiento:
si se ha subido correctamente el fichero:
Asignar un nombre al fichero
Mover el fichero a su ubicación definitiva
si no:
Mostrar un mensaje de error
fsi
Subida de ficheros al servidor
HTML
< INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400">
< INPUT TYPE="FILE" SIZE="44" NAME="imagen">
La variable $_FILES contiene toda la información del fichero subido:
$_FILES['imagen']['name']
Nombre original del fichero en la máquina cliente
$_FILES['imagen']['type']
Tipo mime del fichero. Por ejemplo, "image/gif"
$_FILES['imagen']['size']
Tamaño en bytes del fichero subido
$_FILES['imagen']['tmp_name']
Nombre del fichero temporal en el que se almacena el fichero subido en el servidor
$_FILES['imagen]['error']
Código de error asociado al fichero subido
Subida de ficheros al servidor
PHP
if (is_uploaded_file ($_FILES['imagen']['tmp_name']))
{
$nombreDirectorio = "img/";
$idUnico = time();
$nombreFichero = $idUnico . "-" . $_FILES['imagen']['name'];
move_uploaded_file ($_FILES['imagen']['tmp_name'],
$nombreDirectorio . $nombreFichero);
}
else
print ("No se ha podido subir el ficheron");
Subida de ficheros al servidor
Ejercicio 4: subida de un fichero al servidor
Ilustra cómo subir ficheros a un servidor, cómo controlar su tamaño, cómo crear un nombre único para el fichero y cómo almacenarlo en el lugar deseado
Campos dinámicos con JavaScript
Es habitual que un campo de un formulario deba cambiar de valor al modificarse otro campo del mismo formulario
Si el nuevo valor está almacenado en una base de datos, la solución es volver a cargar el formulario con los nuevos requisitos
En algunos casos el nuevo valor puede calcularse de forma automática, para lo cual podemos usar JavaScript
Ejemplo: introducción de una fecha
Campos dinámicos con JavaScript
Ejercicio 5: formulario con campos que se actualizan dinámicamente
Ilustra cómo actualizar el valor de un campo de un formulario en función del valor de otro, por medio de funciones en JavaScript
Validación de formularios
Toda la información proveniente de un formulario debe considerarse por norma como contaminada, y hay que validarla antes de darla por buena y procesarla
Lo más eficiente es mostrar los errores sobre el propio formulario para facilitar su corrección. Procedimiento:
si se ha enviado el formulario:
si hay errores:
Mostrar formulario con errores
si no:
Procesar formulario
fsi
si no:
Mostrar formulario
fsi
Validación de formularios
Este procedimiento se puede resumir para que sólo haya que mostrar una vez el formulario, bien con los valores por defecto o con los valores introducidos, y con los errores en su caso:
si se ha enviado el formulario:
validar datos
fsi
si se ha enviado el formulario y no hay errores:
Procesar formulario
si no:
Mostrar formulario con valores por defecto o ya enviados
fsi
Validación de formularios
Ejercicio 6: validación de los datos introducidos en un formulario
Ilustra cómo realizar una validación de los datos introducidos en un formulario en el propio formulario
Página anterior | Volver al principio del trabajo | Página siguiente |