SlideShare una empresa de Scribd logo
1 de 35
Curso de PHP



s   Tema 3: Formularios
Tema 3: Formularios

1.   Acceso a formularios HTML desde PHP
2.   El formulario de PHP
3.   Subida de ficheros al servidor
4.   Campos dinámicos con JavaScript
5.   Validación de los datos de un formulario
Acceso a formularios desde PHP
s   Desde PHP se puede acceder fácilmente a los datos
    introducidos desde un formulario HTML
s   Veámoslo con un ejemplo simple
Acceso a formularios desde PHP
s   Fichero uno.php
      <HTML>
      <BODY>
      <FORM ACTION=”dos.php” METHOD=”POST”>
         Edad: <INPUT TYPE=”text” NAME=”edad”>
         <INPUT TYPE=”submit” VALUE=”aceptar”>
      </FORM>
      </BODY>
      </HTML>

s   Fichero dos.php
      <HTML>
      <BODY>
      <?PHP
         print (“La edad es: $edad”);
      ?>
      </BODY>
      </HTML>
Acceso a formularios desde PHP
Acceso a formularios desde PHP
s   A partir de PHP 4.2.0, el valor por defecto de la directiva de
    PHP register_globals es off
s   Esto 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 $edad
s   Se puede poner register_globals = on en el fichero de
    configuración php.ini, pero no es recomendable por motivos
    de seguridad. Una alternativa que permite hacer mínimos
    cambios en el código ya existente es la siguiente:
          $edad = $_REQUEST[‘edad’];
Acceso a formularios desde PHP
s   Fichero uno.php
      <HTML>
      <BODY>
      <FORM ACTION=”dos.php” METHOD=”POST”>
         Edad: <INPUT TYPE=”text” NAME=”edad”>
         <INPUT TYPE=”submit” VALUE=”aceptar”>
      </FORM>
      </BODY>
      </HTML>

s   Fichero dos.php
      <HTML>
      <BODY>
      <?PHP
         $edad = $_REQUEST[‘edad’];
         print (“La edad es: $edad”);
      ?>
      </BODY>
      </HTML>
Acceso a formularios desde PHP
s   Ejercicio 1: formulario simple
       – Ilustra cómo acceder a los valores introducidos desde un
         formulario HTML
Acceso a formularios desde PHP
s   Acceso a los diferentes tipos de elementos de entrada de
    formulario
       – Elementos de tipo INPUT
             •   TEXT
             •   RADIO
             •   CHECKBOX
             •   BUTTON
             •   FILE
             •   HIDDEN
             •   PASSWORD
             •   SUBMIT
       – Elemento SELECT
             •   Simple / múltiple
       – Elemento TEXTAREA
Acceso a formularios desde PHP

s   TEXT
    Introduzca la cadena a buscar:
    <INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20">


    <?PHP
       print ($cadena);
     //print ($_REQUEST [‘cadena’]);
    ?>
Acceso a formularios desde PHP

s   RADIO
    <INPUT TYPE="radio" NAME="titulacion" VALUE=“II“ CHECKED>I.Informática
    <INPUT TYPE="radio" NAME="titulacion" VALUE="ITIG">I.T.I. Gestión
    <INPUT TYPE="radio" NAME="titulacion" VALUE="ITIS">I.T.I. Sistemas


    <?PHP
       print ($titulacion);
     //print ($_REQUEST [‘titulacion’]);
    ?>
Acceso a formularios desde PHP
s   CHECKBOX

    <INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje"
    CHECKED>Garaje
    <INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina
    <INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín


    <?PHP
       $n = count ($extras);
       for ($i=0; $i<$n; $i++)
          print (“$extras[$i]<BR>n”);
     //foreach ($_REQUEST[‘extras’] as $extra)
        //print (“$extra<BR>n”);
    ?>
Acceso a formularios desde PHP

s   BUTTON
    <INPUT TYPE="button" NAME="nueva" VALUE="Añadir una más">


    <?PHP
       if ($nueva)
          print ("Se va a añadir una nueva");
       //if ($_REQUEST [‘nueva’])
          //print ("Se va a añadir una nueva");
    ?>
Acceso a formularios desde PHP

s   FILE
    <FORM ACTION="procesa.php" METHOD="post“
       ENCTYPE="multipart/form-data">
       <INPUT TYPE="file" NAME="fichero">
    </FORM>
Acceso a formularios desde PHP

s   HIDDEN
    <?PHP
       print(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>n”);
    ?>


    <?PHP
       print ($username);
       //print ($_REQUEST [‘username’]);
    ?>
Acceso a formularios desde PHP

s   PASSWORD
    Contraseña: <INPUT TYPE="password" NAME="clave">


    <?PHP
       print ($clave);
       //print ($_REQUEST [‘clave’]);
    ?>
Acceso a formularios desde PHP

s   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

s   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

s   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

s   TEXTAREA
    <TEXTAREA COLS=“30" ROWS=“4" NAME="comentario">
    Este libro me parece ...
    </TEXTAREA>


    <?PHP
       print ($comentario);
       //print ($_REQUEST [‘comentario’]);
    ?>
Acceso a formularios desde PHP
s   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
s   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
s   Ventajas:
       – Disminuye el número de ficheros
       – Permite validar los datos del formulario en el propio formulario
s   Procedimiento:

       si se ha enviado el formulario:
           Procesar formulario
       si no:
           Mostrar formulario
       fsi
El formulario de PHP
s   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
s   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
s   Para subir un fichero al servidor se utiliza el elemento de
    entrada FILE
s   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

php.ini
   ;;;;;;;;;;;;;;;;
   ; 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

formulario
   <INPUT TYPE=”HIDDEN” NAME=”MAX_FILE_SIZE” VALUE='102400'>
   <INPUT TYPE=”FILE” NAME="fichero">
Subida de ficheros al servidor
s   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()
s   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">

s   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
s   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
s   Es habitual que un campo de un formulario deba cambiar de
    valor al modificarse otro campo del mismo formulario
s   Si el nuevo valor está almacenado en una base de datos, la
    solución es volver a cargar el formulario con los nuevos
    requisitos
s   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
s   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
s   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
s   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
s   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
s   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

Más contenido relacionado

La actualidad más candente

Gestion de formularios php
Gestion de formularios phpGestion de formularios php
Gestion de formularios phpwilliamCG27
 
Clase 14 doctrine - subir archivos
Clase 14   doctrine - subir archivosClase 14   doctrine - subir archivos
Clase 14 doctrine - subir archivoshydras_cs
 
Manual php completo by_ desarrolloweb
Manual php completo by_ desarrollowebManual php completo by_ desarrolloweb
Manual php completo by_ desarrollowebJomar Burgos Palacios
 
Formularios Y Archivos En Php
Formularios Y Archivos En PhpFormularios Y Archivos En Php
Formularios Y Archivos En PhpConfesorAD
 
Guia programacionwebdesarrollositiosweb
Guia programacionwebdesarrollositioswebGuia programacionwebdesarrollositiosweb
Guia programacionwebdesarrollositiosweblissette_torrealba
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzadodrakatiadiaz
 
Clase 14 bundles útiles
Clase 14 bundles útilesClase 14 bundles útiles
Clase 14 bundles útileshydras_cs
 
Clase 2 conceptos fundamentales
Clase 2   conceptos fundamentalesClase 2   conceptos fundamentales
Clase 2 conceptos fundamentaleshydras_cs
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, javaFaby Marcos Solis
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...Pablo Godel
 
Conociendo el Patron Modelo Vista Controlador
Conociendo el Patron   Modelo Vista ControladorConociendo el Patron   Modelo Vista Controlador
Conociendo el Patron Modelo Vista Controladorlissette_torrealba
 
Laboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoLaboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoFelipe Moreno
 

La actualidad más candente (20)

Gestion de formularios php
Gestion de formularios phpGestion de formularios php
Gestion de formularios php
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Clase 14 doctrine - subir archivos
Clase 14   doctrine - subir archivosClase 14   doctrine - subir archivos
Clase 14 doctrine - subir archivos
 
Manual php completo by_ desarrolloweb
Manual php completo by_ desarrollowebManual php completo by_ desarrolloweb
Manual php completo by_ desarrolloweb
 
Formularios Y Archivos En Php
Formularios Y Archivos En PhpFormularios Y Archivos En Php
Formularios Y Archivos En Php
 
Guia programacionwebdesarrollositiosweb
Guia programacionwebdesarrollositioswebGuia programacionwebdesarrollositiosweb
Guia programacionwebdesarrollositiosweb
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
 
Clase 14 bundles útiles
Clase 14 bundles útilesClase 14 bundles útiles
Clase 14 bundles útiles
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Clase 2 conceptos fundamentales
Clase 2   conceptos fundamentalesClase 2   conceptos fundamentales
Clase 2 conceptos fundamentales
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, java
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Iniciacion a PHP (I)
Iniciacion a PHP (I)Iniciacion a PHP (I)
Iniciacion a PHP (I)
 
Conociendo el Patron Modelo Vista Controlador
Conociendo el Patron   Modelo Vista ControladorConociendo el Patron   Modelo Vista Controlador
Conociendo el Patron Modelo Vista Controlador
 
Conociendo PHP
Conociendo PHPConociendo PHP
Conociendo PHP
 
Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
 
Laboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoLaboratorio 3 Andres Moreno
Laboratorio 3 Andres Moreno
 
Tutorial php mysql
Tutorial php mysqlTutorial php mysql
Tutorial php mysql
 

Destacado

Destacado (7)

Leccion 4.0 bases de datos
Leccion 4.0   bases de datosLeccion 4.0   bases de datos
Leccion 4.0 bases de datos
 
Tema1[php]
Tema1[php]Tema1[php]
Tema1[php]
 
Tema1 php
Tema1 phpTema1 php
Tema1 php
 
Tema2 3
Tema2 3Tema2 3
Tema2 3
 
Sotogrande
SotograndeSotogrande
Sotogrande
 
Curso PHP Y MYSQL
Curso PHP Y MYSQLCurso PHP Y MYSQL
Curso PHP Y MYSQL
 
Ejercicios y practicas en PHP
Ejercicios y practicas en PHPEjercicios y practicas en PHP
Ejercicios y practicas en PHP
 

Similar a Tema3[php]

Aprendiendo php 3
Aprendiendo php 3Aprendiendo php 3
Aprendiendo php 3Erick Trejo
 
Final portafolio 3 c (1)
Final portafolio 3 c (1)Final portafolio 3 c (1)
Final portafolio 3 c (1)JuanSimbaa8
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Victor Aravena
 
Recuperar datos de un formulario con php
Recuperar datos de un formulario con phpRecuperar datos de un formulario con php
Recuperar datos de un formulario con phpJesus Machicado Gomez
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencapaulcuenca9
 
Ejemplo de formulario
Ejemplo de formularioEjemplo de formulario
Ejemplo de formularioOVAWEB
 
Desarrollo de sistios web
Desarrollo de sistios webDesarrollo de sistios web
Desarrollo de sistios webesmartcrimt
 
Wp config.php
Wp config.phpWp config.php
Wp config.phpgregozz
 
Procedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpProcedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpClau Doria
 
Procedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpProcedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpClau Doria
 
Procedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpProcedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpClau Doria
 

Similar a Tema3[php] (20)

Aprendiendo php 3
Aprendiendo php 3Aprendiendo php 3
Aprendiendo php 3
 
2 4 formularios_php
2 4 formularios_php2 4 formularios_php
2 4 formularios_php
 
PhpLab05
PhpLab05PhpLab05
PhpLab05
 
Final portafolio 3 c (1)
Final portafolio 3 c (1)Final portafolio 3 c (1)
Final portafolio 3 c (1)
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
 
Recuperar datos de un formulario con php
Recuperar datos de un formulario con phpRecuperar datos de un formulario con php
Recuperar datos de un formulario con php
 
Clases de php
Clases de phpClases de php
Clases de php
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Formularios
FormulariosFormularios
Formularios
 
Seguridad en PHP (es)
Seguridad en PHP (es)Seguridad en PHP (es)
Seguridad en PHP (es)
 
Ejemplo de formulario
Ejemplo de formularioEjemplo de formulario
Ejemplo de formulario
 
Sesion n°6
Sesion n°6Sesion n°6
Sesion n°6
 
Esquemas de seguridad para el servidor
Esquemas de seguridad para el servidorEsquemas de seguridad para el servidor
Esquemas de seguridad para el servidor
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Desarrollo de sistios web
Desarrollo de sistios webDesarrollo de sistios web
Desarrollo de sistios web
 
Wp config.php
Wp config.phpWp config.php
Wp config.php
 
Procedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpProcedimiento de creacion de archivo php
Procedimiento de creacion de archivo php
 
Procedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpProcedimiento de creacion de archivo php
Procedimiento de creacion de archivo php
 
Procedimiento de creacion de archivo php
Procedimiento de creacion de archivo phpProcedimiento de creacion de archivo php
Procedimiento de creacion de archivo php
 

Último

proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 

Último (20)

proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 

Tema3[php]

  • 1. Curso de PHP s Tema 3: Formularios
  • 2. Tema 3: Formularios 1. Acceso a formularios HTML desde PHP 2. El formulario de PHP 3. Subida de ficheros al servidor 4. Campos dinámicos con JavaScript 5. Validación de los datos de un formulario
  • 3. Acceso a formularios desde PHP s Desde PHP se puede acceder fácilmente a los datos introducidos desde un formulario HTML s Veámoslo con un ejemplo simple
  • 4. Acceso a formularios desde PHP s Fichero uno.php <HTML> <BODY> <FORM ACTION=”dos.php” METHOD=”POST”> Edad: <INPUT TYPE=”text” NAME=”edad”> <INPUT TYPE=”submit” VALUE=”aceptar”> </FORM> </BODY> </HTML> s Fichero dos.php <HTML> <BODY> <?PHP print (“La edad es: $edad”); ?> </BODY> </HTML>
  • 6. Acceso a formularios desde PHP s A partir de PHP 4.2.0, el valor por defecto de la directiva de PHP register_globals es off s Esto 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 $edad s Se puede poner register_globals = on en el fichero de configuración php.ini, pero no es recomendable por motivos de seguridad. Una alternativa que permite hacer mínimos cambios en el código ya existente es la siguiente: $edad = $_REQUEST[‘edad’];
  • 7. Acceso a formularios desde PHP s Fichero uno.php <HTML> <BODY> <FORM ACTION=”dos.php” METHOD=”POST”> Edad: <INPUT TYPE=”text” NAME=”edad”> <INPUT TYPE=”submit” VALUE=”aceptar”> </FORM> </BODY> </HTML> s Fichero dos.php <HTML> <BODY> <?PHP $edad = $_REQUEST[‘edad’]; print (“La edad es: $edad”); ?> </BODY> </HTML>
  • 8. Acceso a formularios desde PHP s Ejercicio 1: formulario simple – Ilustra cómo acceder a los valores introducidos desde un formulario HTML
  • 9. Acceso a formularios desde PHP s Acceso a los diferentes tipos de elementos de entrada de formulario – Elementos de tipo INPUT • TEXT • RADIO • CHECKBOX • BUTTON • FILE • HIDDEN • PASSWORD • SUBMIT – Elemento SELECT • Simple / múltiple – Elemento TEXTAREA
  • 10. Acceso a formularios desde PHP s TEXT Introduzca la cadena a buscar: <INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20"> <?PHP print ($cadena); //print ($_REQUEST [‘cadena’]); ?>
  • 11. Acceso a formularios desde PHP s RADIO <INPUT TYPE="radio" NAME="titulacion" VALUE=“II“ CHECKED>I.Informática <INPUT TYPE="radio" NAME="titulacion" VALUE="ITIG">I.T.I. Gestión <INPUT TYPE="radio" NAME="titulacion" VALUE="ITIS">I.T.I. Sistemas <?PHP print ($titulacion); //print ($_REQUEST [‘titulacion’]); ?>
  • 12. Acceso a formularios desde PHP s CHECKBOX <INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje <INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina <INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín <?PHP $n = count ($extras); for ($i=0; $i<$n; $i++) print (“$extras[$i]<BR>n”); //foreach ($_REQUEST[‘extras’] as $extra) //print (“$extra<BR>n”); ?>
  • 13. Acceso a formularios desde PHP s BUTTON <INPUT TYPE="button" NAME="nueva" VALUE="Añadir una más"> <?PHP if ($nueva) print ("Se va a añadir una nueva"); //if ($_REQUEST [‘nueva’]) //print ("Se va a añadir una nueva"); ?>
  • 14. Acceso a formularios desde PHP s FILE <FORM ACTION="procesa.php" METHOD="post“ ENCTYPE="multipart/form-data"> <INPUT TYPE="file" NAME="fichero"> </FORM>
  • 15. Acceso a formularios desde PHP s HIDDEN <?PHP print(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>n”); ?> <?PHP print ($username); //print ($_REQUEST [‘username’]); ?>
  • 16. Acceso a formularios desde PHP s PASSWORD Contraseña: <INPUT TYPE="password" NAME="clave"> <?PHP print ($clave); //print ($_REQUEST [‘clave’]); ?>
  • 17. Acceso a formularios desde PHP s 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"); ?>
  • 18. Acceso a formularios desde PHP s 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’]); ?>
  • 19. Acceso a formularios desde PHP s 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”); ?>
  • 20. Acceso a formularios desde PHP s TEXTAREA <TEXTAREA COLS=“30" ROWS=“4" NAME="comentario"> Este libro me parece ... </TEXTAREA> <?PHP print ($comentario); //print ($_REQUEST [‘comentario’]); ?>
  • 21. Acceso a formularios desde PHP s 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
  • 22. El formulario de PHP s 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 s Ventajas: – Disminuye el número de ficheros – Permite validar los datos del formulario en el propio formulario s Procedimiento: si se ha enviado el formulario: Procesar formulario si no: Mostrar formulario fsi
  • 23. El formulario de PHP s 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”)
  • 24. El formulario de PHP s Ejercicio 3: formulario de PHP – Ilustra cómo crear páginas multipropósito que sirven tanto para mostrar un formulario como para procesarlo
  • 25. Subida de ficheros al servidor s Para subir un fichero al servidor se utiliza el elemento de entrada FILE s 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
  • 26. Subida de ficheros al servidor php.ini ;;;;;;;;;;;;;;;; ; 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 formulario <INPUT TYPE=”HIDDEN” NAME=”MAX_FILE_SIZE” VALUE='102400'> <INPUT TYPE=”FILE” NAME="fichero">
  • 27. Subida de ficheros al servidor s 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() s 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
  • 28. Subida de ficheros al servidor HTML <INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400"> <INPUT TYPE="FILE" SIZE="44" NAME="imagen"> s 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
  • 29. 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");
  • 30. Subida de ficheros al servidor s 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
  • 31. Campos dinámicos con JavaScript s Es habitual que un campo de un formulario deba cambiar de valor al modificarse otro campo del mismo formulario s Si el nuevo valor está almacenado en una base de datos, la solución es volver a cargar el formulario con los nuevos requisitos s En algunos casos el nuevo valor puede calcularse de forma automática, para lo cual podemos usar JavaScript – Ejemplo: introducción de una fecha
  • 32. Campos dinámicos con JavaScript s 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
  • 33. Validación de formularios s 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 s 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
  • 34. Validación de formularios s 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
  • 35. Validación de formularios s 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