formularios en php

36
Desarrollo de sitios web con PHP y MySQL Tema 3: Formularios José Mariano González Romano [email protected]

Upload: pedro-garcia-barroso

Post on 30-Sep-2015

249 views

Category:

Documents


1 download

DESCRIPTION

Descripción del funcionamiento de formularios en PHP

TRANSCRIPT

  • Desarrollo de sitios web conPHP y MySQLTema 3: FormulariosJos Mariano Gonzlez [email protected]

  • 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 PHPRADIOSexo:
  • Acceso a formularios desde PHPCHECKBOXGarajePiscinaJardn

  • Acceso a formularios desde PHPBUTTON
  • Acceso a formularios desde PHPFILE
  • 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