SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie PHP Tema 3 - Formularios

Ähnlich wie 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
 
Cuadro Sinóptico de Llaves Técnicas Creatividad Ordenado Degradado Simple (...
Cuadro Sinóptico de Llaves Técnicas Creatividad Ordenado Degradado Simple (...Cuadro Sinóptico de Llaves Técnicas Creatividad Ordenado Degradado Simple (...
Cuadro Sinóptico de Llaves Técnicas Creatividad Ordenado Degradado Simple (...
 
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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxNadiaMartnez11
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 

Kürzlich hochgeladen (20)

SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 

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