View
264
Download
1
Category
Preview:
DESCRIPTION
Descripción del funcionamiento de formularios en PHP
Citation preview
Desarrollo de sitios web conPHP y MySQLTema 3: FormulariosJos Mariano Gonzlez Romanomariano@lsi.us.es
Tema 3: FormulariosAcceso a formularios HTML desde PHPEl formulario de PHPSubida de ficheros al servidorValidacin de los datos de un formulario
Acceso a formularios desde PHPDesde PHP se puede acceder fcilmente a los datos introducidos desde un formulario HTMLVemoslo con un ejemplo simple
Acceso a formularios desde PHPFichero uno.php
Edad:
Fichero dos.php
Acceso a formularios desde PHP
Acceso a formularios desde PHPA partir de PHP 4.2.0, el valor por defecto de la directiva de PHP register_globals es offEsto tiene una gran importancia sobre los formularios, ya que no es posible acceder a las variables enviadas de la manera anterior (como variables globales). En su lugar hay que utilizar la variable predefinida de PHP $_REQUEST, escribiendo $_REQUEST[edad] en lugar de $edadSe puede poner register_globals = on en el fichero de configuracin php.ini, pero no es recomendable por motivos de seguridad. Una alternativa que permite hacer mnimos cambios en el cdigo ya existente es la siguiente:$edad = $_REQUEST[edad];
Acceso a formularios desde PHPFichero uno.php
Edad:
Fichero dos.php
Acceso a formularios desde PHPEjercicio 1: formulario simpleIlustra cmo acceder a los valores introducidos desde un formulario HTML
Acceso a formularios desde PHPAcceso a los diferentes tipos de elementos de entrada de formularioElementos de tipo INPUTTEXTRADIOCHECKBOXBUTTONFILEHIDDENPASSWORDSUBMITElemento SELECTSimple / mltipleElemento TEXTAREA
Acceso a formularios desde PHPTEXTIntroduzca la cadena a buscar:
Acceso a formularios desde PHPCHECKBOXGarajePiscinaJardn
Acceso a formularios desde PHPHIDDEN
Acceso a formularios desde PHPPASSWORDContrasea:
Acceso a formularios desde PHPSUBMIT
Acceso a formularios desde PHPSELECT simpleColor:Rojo Azul
Acceso a formularios desde PHPSELECT mltipleIdiomas:
Ingls Francs Alemn Holands
Acceso a formularios desde PHPTEXTAREAComentario:
Este libro me parece ...
Acceso a formularios desde PHPEjercicio 2: programa que muestra los datos introducidos desde un formularioIlustra cmo acceder a los valores introducidos desde todos los tipos de elementos de entrada de un formulario, con excepcin de los tipos BUTTON y FILE, que se tratan en ejercicios posteriores
El formulario de PHPLa forma habitual de trabajar con formularios en PHP es utilizar un nico programa que procese el formulario o lo muestre segn haya sido o no enviado, respectivamenteVentajas:Disminuye el nmero de ficherosPermite validar los datos del formulario en el propio formularioProcedimiento:
si se ha enviado el formulario: Procesar formulariosi no: Mostrar formulariofsi
El formulario de PHPEsquema de funcionamiento:si se ha enviado el formulario: Procesar formulario
si no: Mostrar formulariofsia)b)La 1 vez que se carga la pgina se muestra el formulario (a)La 2 vez se procesa el formulario (b)
El formulario de PHPPara saber si se ha enviado el formulario se acude a la variable correspondiente al botn de envo. Si este botn aparece de la siguiente forma en el formulario HTML:
El formulario de PHPEjercicio 3: formulario de PHPIlustra cmo crear pginas multipropsito que sirven tanto para mostrar un formulario como para procesarlo
Subida de ficheros al servidorPara subir un fichero al servidor se utiliza el elemento de entrada FILEHay que tener en cuenta una serie de consideraciones importantes:El elemento FORM debe tener el atributo ENCTYPE="multipart/form-dataEl fichero tiene un lmite en cuanto a su tamao. Este lmite se fija de dos formas diferentes:En el fichero de configuracin php.iniEn 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 = 2Mphp.iniformulario
Subida de ficheros al servidorConsideraciones (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 nicoEl fichero subido se almacena en un directorio temporal y hemos de moverlo al directorio de destino usando la funcin move_upload_file()Procedimiento:
si se ha subido correctamente el fichero:Asignar un nombre al ficheroMover el fichero a su ubicacin definitivasi no:Mostrar un mensaje de errorfsi
Subida de ficheros al servidorLa variable $_FILES contiene toda la informacin del fichero subido:$_FILES['imagen']['name'] Nombre original del fichero en la mquina cliente$_FILES['imagen']['type'] Tipo mime del fichero. Por ejemplo, "image/gif"$_FILES['imagen']['size'] Tamao 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']Cdigo de error asociado al fichero subidoHTML
Subida de ficheros al servidorPHPif (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 fichero\n");
Subida de ficheros al servidorPHPif (is_uploaded_file ($_FILES['imagen']['tmp_name'])){ $nombreDirectorio = "img/"; $nombreFichero = $_FILES['imagen']['name'];
$nombreCompleto = $nombreDirectorio . $nombreFichero; if (is_file($nombreCompleto)) { $idUnico = time(); $nombreFichero = $idUnico . "-" . $nombreFichero; }
move_uploaded_file ($_FILES['imagen']['tmp_name'], $nombreDirectorio . $nombreFichero);}else print ("No se ha podido subir el fichero\n");
Subida de ficheros al servidorEjercicio 4: subida de un fichero al servidorIlustra cmo subir ficheros a un servidor, cmo controlar su tamao, cmo crear un nombre nico para el fichero y cmo almacenarlo en el lugar deseado
Validacin de formulariosToda la informacin proveniente de un formulario debe considerarse por norma como contaminada, y hay que validarla antes de darla por buena y procesarlaLo ms eficiente es mostrar los errores sobre el propio formulario para facilitar su correccin. Procedimiento:
si se ha enviado el formulario: si hay errores: Mostrar formulario con errores si no: Procesar formulario fsisi no: Mostrar formulariofsi
Validacin de formulariosEste procedimiento se puede resumir para que slo 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 datosfsisi se ha enviado el formulario y no hay errores: Procesar formulariosi no: Mostrar formulario con valores por defecto o ya enviadosfsi
Validacin de formulariosEsquema de funcionamiento:si se ha enviado el formulario: validar datosfsisi se ha enviado y no hay errores: Procesar formulario
si no: Mostrar formulariofsia)b)c)La 1 vez que se carga la pgina se muestra el formulario (a)La 2 y sucesivas veces se validan los datosSi hay errores, se muestra de nuevo el formulario con los errores (b)Si no hay, se procesa el formulario (c)
Validacin de formulariosEjercicio 5: validacin de los datos introducidos en un formularioIlustra cmo realizar una validacin de los datos introducidos en un formulario en el propio formulario
Recommended