SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Desarrollo de sitios web con
PHP y MySQL
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. Validación de los datos de un formulario
Acceso a formularios desde PHP
Desde PHP se puede acceder fácilmente a los datos
introducidos desde un formulario HTML
Veámoslo con un ejemplo simple
Acceso a formularios desde PHP
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>
Fichero dos.php
<HTML>
<BODY>
<?PHP
print (“La edad es: $edad”);
?>
</BODY>
</HTML>
Acceso a formularios desde PHP
Acceso a formularios desde PHP
A partir de PHP 4.2.0, el valor por defecto de la directiva de
PHP register_globals es off
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
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
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>
Fichero dos.php
<HTML>
<BODY>
<?PHP
$edad = $_REQUEST[‘edad’];
print (“La edad es: $edad”);
?>
</BODY>
</HTML>
Acceso a formularios desde PHP
Ejercicio 1: formulario simple
– Ilustra cómo acceder a los valores introducidos desde un
formulario HTML
Acceso a formularios desde PHP
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
TEXT
Introduzca la cadena a buscar:
<INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20">
<?PHP
$cadena = $_REQUEST[‘cadena’];
print ($cadena);
?>
Acceso a formularios desde PHP
RADIO
Sexo:
<INPUT TYPE="radio" NAME=“sexo" VALUE=“M“ CHECKED>Mujer
<INPUT TYPE="radio" NAME=“sexo" VALUE=“H">Hombre
<?PHP
$sexo = $_REQUEST[‘sexo’];
print ($sexo);
?>
Acceso a formularios desde PHP
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
$extras = $_REQUEST[‘extras’];
foreach ($extras as $extra)
print (“$extra<BR>n”);
?>
Acceso a formularios desde PHP
BUTTON
<INPUT TYPE="button" NAME=“actualizar" VALUE="Actualizar datos">
<?PHP
$actualizar = $_REQUEST[‘actualizar’];
if ($actualizar)
print ("Se han actualizado los datos");
?>
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
$username = $_REQUEST[‘username’];
print ($username);
?>
Acceso a formularios desde PHP
PASSWORD
Contraseña: <INPUT TYPE="password" NAME="clave">
<?PHP
$clave = $_REQUEST[‘clave’];
print ($clave);
?>
Acceso a formularios desde PHP
SUBMIT
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos">
<?PHP
$enviar = $_REQUEST[‘enviar’];
if ($enviar)
print ("Se ha pulsado el botón de enviar");
?>
Acceso a formularios desde PHP
SELECT simple
Color:
<SELECT NAME=“color">
<OPTION VALUE=“rojo" SELECTED>Rojo
<OPTION VALUE=“verde">Verde
<OPTION VALUE=“azul">Azul
</SELECT>
<?PHP
$color = $_REQUEST[‘color’];
print ($color);
?>
Acceso a formularios desde PHP
SELECT múltiple
Idiomas:
<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
$idiomas = $_REQUEST[‘idiomas’];
foreach ($idiomas as $idioma)
print (“$idioma<BR>n”);
?>
Acceso a formularios desde PHP
TEXTAREA
Comentario:
<TEXTAREA COLS=“50" ROWS=“4" NAME="comentario">
Este libro me parece ...
</TEXTAREA>
<?PHP
$comentario = $_REQUEST[‘comentario’];
print ($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
Esquema de funcionamiento:
si se ha enviado el formulario:
Procesar formulario
si no:
Mostrar formulario
fsi
a) b)
– La 1ª vez que se carga la página se muestra el formulario (a)
– La 2ª vez se procesa el formulario (b)
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
PHP
if (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 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
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
Esquema de funcionamiento:
si se ha enviado el formulario:
validar datos
fsi
si se ha enviado y no hay errores:
Procesar formulario
si no:
Mostrar formulario
fsi
a) b) c)
– La 1ª vez que se carga la página se muestra el formulario (a)
– La 2ª y sucesivas veces se validan los datos
• Si hay errores, se muestra de nuevo el formulario con los errores (b)
• Si no hay, se procesa el formulario (c)
Validación de formularios
Ejercicio 5: 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

05. Cómo instalar Filezilla y conectarse al servidor
05.  Cómo instalar Filezilla y conectarse al servidor05.  Cómo instalar Filezilla y conectarse al servidor
05. Cómo instalar Filezilla y conectarse al servidorkepamara
 
Clase 14 bundles útiles
Clase 14 bundles útilesClase 14 bundles útiles
Clase 14 bundles útileshydras_cs
 
Capitulo II
Capitulo IICapitulo II
Capitulo IImanu1819
 
Clase 14 doctrine - subir archivos
Clase 14   doctrine - subir archivosClase 14   doctrine - subir archivos
Clase 14 doctrine - subir archivoshydras_cs
 
Laboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoLaboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoFelipe Moreno
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.yanburbano
 
Manual de instalacion hosting gratuito druapal y word press
Manual de instalacion hosting gratuito druapal y word pressManual de instalacion hosting gratuito druapal y word press
Manual de instalacion hosting gratuito druapal y word presservin1983
 
Hacking uploaders
Hacking uploadersHacking uploaders
Hacking uploaderslinenoise
 

La actualidad más candente (11)

05. Cómo instalar Filezilla y conectarse al servidor
05.  Cómo instalar Filezilla y conectarse al servidor05.  Cómo instalar Filezilla y conectarse al servidor
05. Cómo instalar Filezilla y conectarse al servidor
 
Clase 14 bundles útiles
Clase 14 bundles útilesClase 14 bundles útiles
Clase 14 bundles útiles
 
PhpLab05
PhpLab05PhpLab05
PhpLab05
 
Capitulo II
Capitulo IICapitulo II
Capitulo II
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Clase 14 doctrine - subir archivos
Clase 14   doctrine - subir archivosClase 14   doctrine - subir archivos
Clase 14 doctrine - subir archivos
 
"Como subir archivos al internet"
"Como subir archivos al internet""Como subir archivos al internet"
"Como subir archivos al internet"
 
Laboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoLaboratorio 3 Andres Moreno
Laboratorio 3 Andres Moreno
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.
 
Manual de instalacion hosting gratuito druapal y word press
Manual de instalacion hosting gratuito druapal y word pressManual de instalacion hosting gratuito druapal y word press
Manual de instalacion hosting gratuito druapal y word press
 
Hacking uploaders
Hacking uploadersHacking uploaders
Hacking uploaders
 

Similar a PHP Tema 3 - Formularios

Similar a PHP Tema 3 - Formularios (20)

fonciones
foncionesfonciones
fonciones
 
Tema3[Php]
Tema3[Php]Tema3[Php]
Tema3[Php]
 
Aprendiendo php 3
Aprendiendo php 3Aprendiendo php 3
Aprendiendo php 3
 
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+
 
2 4 formularios_php
2 4 formularios_php2 4 formularios_php
2 4 formularios_php
 
Jsg2
Jsg2Jsg2
Jsg2
 
tema.pptx
tema.pptxtema.pptx
tema.pptx
 
Guia programacionwebdesarrollositiosweb
Guia programacionwebdesarrollositioswebGuia programacionwebdesarrollositiosweb
Guia programacionwebdesarrollositiosweb
 
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
 
Sesion n°6
Sesion n°6Sesion n°6
Sesion n°6
 
Clase 10 formularios
Clase 10   formulariosClase 10   formularios
Clase 10 formularios
 
Manual de aspupload
Manual de aspuploadManual de aspupload
Manual de aspupload
 
Desarrollo de sistios web
Desarrollo de sistios webDesarrollo de sistios web
Desarrollo de sistios web
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework Symfony
 
Desarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sqlDesarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sql
 
Curso PHP Academia Usero
Curso PHP Academia UseroCurso PHP Academia Usero
Curso PHP Academia Usero
 
LFI & RFI
LFI & RFI LFI & RFI
LFI & RFI
 
Funciones
FuncionesFunciones
Funciones
 
mejorando con php
mejorando con phpmejorando con php
mejorando con php
 
Importacion prograCSV
Importacion prograCSVImportacion prograCSV
Importacion prograCSV
 

Más de Spacetoshare

Probles on Algorithms
Probles on AlgorithmsProbles on Algorithms
Probles on AlgorithmsSpacetoshare
 
Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosSpacetoshare
 
Inducción matemática
Inducción matemáticaInducción matemática
Inducción matemáticaSpacetoshare
 
Ejercicios Investigación de operaciones
Ejercicios Investigación de operacionesEjercicios Investigación de operaciones
Ejercicios Investigación de operacionesSpacetoshare
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamientoSpacetoshare
 
Como escribir tesis
Como escribir tesisComo escribir tesis
Como escribir tesisSpacetoshare
 
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOSCOMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOSSpacetoshare
 
Curso básico de Ensamblador
Curso básico de EnsambladorCurso básico de Ensamblador
Curso básico de EnsambladorSpacetoshare
 
Ejercicios álgebra superior
Ejercicios álgebra superiorEjercicios álgebra superior
Ejercicios álgebra superiorSpacetoshare
 
INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA Spacetoshare
 
Sistemas de ecuaciones
Sistemas de ecuacionesSistemas de ecuaciones
Sistemas de ecuacionesSpacetoshare
 
Inducción matemática
Inducción matemáticaInducción matemática
Inducción matemáticaSpacetoshare
 
Tareas números complejos
Tareas números complejosTareas números complejos
Tareas números complejosSpacetoshare
 

Más de Spacetoshare (20)

EL HUECO.pdf
EL HUECO.pdfEL HUECO.pdf
EL HUECO.pdf
 
Probles on Algorithms
Probles on AlgorithmsProbles on Algorithms
Probles on Algorithms
 
Sums ADA
Sums ADASums ADA
Sums ADA
 
Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmos
 
Inducción matemática
Inducción matemáticaInducción matemática
Inducción matemática
 
Fórmulas ADA
Fórmulas ADAFórmulas ADA
Fórmulas ADA
 
Ejercicios Investigación de operaciones
Ejercicios Investigación de operacionesEjercicios Investigación de operaciones
Ejercicios Investigación de operaciones
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Ejercicios jess
Ejercicios jessEjercicios jess
Ejercicios jess
 
Sistemas Expertos
Sistemas ExpertosSistemas Expertos
Sistemas Expertos
 
Como escribir tesis
Como escribir tesisComo escribir tesis
Como escribir tesis
 
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOSCOMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
 
Curso básico de Ensamblador
Curso básico de EnsambladorCurso básico de Ensamblador
Curso básico de Ensamblador
 
Ejercicios álgebra superior
Ejercicios álgebra superiorEjercicios álgebra superior
Ejercicios álgebra superior
 
INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA
 
Sistemas de ecuaciones
Sistemas de ecuacionesSistemas de ecuaciones
Sistemas de ecuaciones
 
Determinantes
DeterminantesDeterminantes
Determinantes
 
Inducción matemática
Inducción matemáticaInducción matemática
Inducción matemática
 
Tareas números complejos
Tareas números complejosTareas números complejos
Tareas números complejos
 
Ejer
EjerEjer
Ejer
 

Último

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 

Último (20)

Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 

PHP Tema 3 - Formularios

  • 1. Desarrollo de sitios web con PHP y MySQL 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. Validación de los datos de un formulario
  • 3. Acceso a formularios desde PHP Desde PHP se puede acceder fácilmente a los datos introducidos desde un formulario HTML Veámoslo con un ejemplo simple
  • 4. Acceso a formularios desde PHP 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> Fichero dos.php <HTML> <BODY> <?PHP print (“La edad es: $edad”); ?> </BODY> </HTML>
  • 6. Acceso a formularios desde PHP A partir de PHP 4.2.0, el valor por defecto de la directiva de PHP register_globals es off 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 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 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> Fichero dos.php <HTML> <BODY> <?PHP $edad = $_REQUEST[‘edad’]; print (“La edad es: $edad”); ?> </BODY> </HTML>
  • 8. Acceso a formularios desde PHP Ejercicio 1: formulario simple – Ilustra cómo acceder a los valores introducidos desde un formulario HTML
  • 9. Acceso a formularios desde PHP 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 TEXT Introduzca la cadena a buscar: <INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20"> <?PHP $cadena = $_REQUEST[‘cadena’]; print ($cadena); ?>
  • 11. Acceso a formularios desde PHP RADIO Sexo: <INPUT TYPE="radio" NAME=“sexo" VALUE=“M“ CHECKED>Mujer <INPUT TYPE="radio" NAME=“sexo" VALUE=“H">Hombre <?PHP $sexo = $_REQUEST[‘sexo’]; print ($sexo); ?>
  • 12. Acceso a formularios desde PHP 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 $extras = $_REQUEST[‘extras’]; foreach ($extras as $extra) print (“$extra<BR>n”); ?>
  • 13. Acceso a formularios desde PHP BUTTON <INPUT TYPE="button" NAME=“actualizar" VALUE="Actualizar datos"> <?PHP $actualizar = $_REQUEST[‘actualizar’]; if ($actualizar) print ("Se han actualizado los datos"); ?>
  • 14. Acceso a formularios desde PHP FILE <FORM ACTION="procesa.php" METHOD="post“ ENCTYPE="multipart/form-data"> <INPUT TYPE="file" NAME="fichero"> </FORM>
  • 15. Acceso a formularios desde PHP HIDDEN <?PHP print(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>n”); ?> <?PHP $username = $_REQUEST[‘username’]; print ($username); ?>
  • 16. Acceso a formularios desde PHP PASSWORD Contraseña: <INPUT TYPE="password" NAME="clave"> <?PHP $clave = $_REQUEST[‘clave’]; print ($clave); ?>
  • 17. Acceso a formularios desde PHP SUBMIT <INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos"> <?PHP $enviar = $_REQUEST[‘enviar’]; if ($enviar) print ("Se ha pulsado el botón de enviar"); ?>
  • 18. Acceso a formularios desde PHP SELECT simple Color: <SELECT NAME=“color"> <OPTION VALUE=“rojo" SELECTED>Rojo <OPTION VALUE=“verde">Verde <OPTION VALUE=“azul">Azul </SELECT> <?PHP $color = $_REQUEST[‘color’]; print ($color); ?>
  • 19. Acceso a formularios desde PHP SELECT múltiple Idiomas: <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 $idiomas = $_REQUEST[‘idiomas’]; foreach ($idiomas as $idioma) print (“$idioma<BR>n”); ?>
  • 20. Acceso a formularios desde PHP TEXTAREA Comentario: <TEXTAREA COLS=“50" ROWS=“4" NAME="comentario"> Este libro me parece ... </TEXTAREA> <?PHP $comentario = $_REQUEST[‘comentario’]; print ($comentario); ?>
  • 21. 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
  • 22. 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
  • 23. El formulario de PHP Esquema de funcionamiento: si se ha enviado el formulario: Procesar formulario si no: Mostrar formulario fsi a) b) – La 1ª vez que se carga la página se muestra el formulario (a) – La 2ª vez se procesa el formulario (b)
  • 24. 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”)
  • 25. 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
  • 26. 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
  • 27. 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">
  • 28. 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
  • 29. 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
  • 30. 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");
  • 31. Subida de ficheros al servidor PHP if (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 ficheron");
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. Validación de formularios Esquema de funcionamiento: si se ha enviado el formulario: validar datos fsi si se ha enviado y no hay errores: Procesar formulario si no: Mostrar formulario fsi a) b) c) – La 1ª vez que se carga la página se muestra el formulario (a) – La 2ª y sucesivas veces se validan los datos • Si hay errores, se muestra de nuevo el formulario con los errores (b) • Si no hay, se procesa el formulario (c)
  • 36. Validación de formularios Ejercicio 5: 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