Desarrollo de sitios web con PHP y MySQL Formularios José Mariano González Romano

Slides:



Advertisements
Presentaciones similares
Departamento de Comunicación Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Estado de México Instituto Tecnológico y de Estudios.
Advertisements

Curso de PHP Tema 5: Sesiones.
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Lenguaje PHP Capítulo 4.
Modelando aplicaciones
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
M.C. Rafael A. García Rosas.
Desarrollo de sitios web con PHP y MySQL Tema 3: Formularios José Mariano González Romano
"java del lado del servidor" Servlet y JSP Java Server Pages.
Control de eventos con Javascript
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
Subir Ficheros al Servidor con PHP José Sánchez Galvañ.
Curso de PHP Tema 3: Formularios.
Curso de PHP Tema 6: Seguridad.
Tema 2: Lenguaje PHP básico
Introduccion a las páginas WEB HTML
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Taller 5: Trabajo con Plantillas y uso de tecnología Ajax.
Desarrollo de sitios web con PHP y MySQL Tema 5: Sesiones José Mariano González Romano
FORMULARIOS HTML TIPOS DE ELEMENTOS DE FORMULARIO n Campos de entrada de datos. n Campos de datos de varias líneas. n Listas. n Botones. n Textos descriptivos.
Ingeniero Anyelo Quintero
PHP TODO SOBRE PHP.
Uso de las Sesiones Temas: Creación de sesiones Lectura de sesiones Borrado de sesiones.
Desarrollo de sitios web con PHP y MySQL
Ihr Logo PHP Parte 4 “manejo de formularios”. Your Logo Formularios  El proceso para el manejo de FORMULARIOS html requiere generalmente dos páginas,
CREACIÓN DE PÁGINAS WEB CON SHAREPOINT DESIGNER 2007 (Sesión 5) Ricardo Ferrís Castell ( ) Departament D ’ Informàtica.
Manual PHP Básico Camilo Cartagena.
Administración de Sitios Web Introducción al Lenguaje PHP
Creación de páginas Web (II) Formularios Pau Barceló Forteza
GET POST Isc. Abraham Fernández Espinosa Universidad ICEP.
Introducción a programación web Martin Esses. Formularios HTML se utilizan para pasar datos a un servidor. Un formulario HTML puede contener elementos.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Curso PHP y MySQL Germán Galeano y Juan Bachiller Del 6 de Febrero al 12 de Marzo de 2012.
Aplicación con Angular, Ionic y PHP Por: Luis Salvador.
Solicitudes a Facilities Pedidos de activos tecnológicos 2016.
CardSpace. Índice Comprendiendo la identidad digital Comprendiendo la identidad digital Describiendo la identidad digital Describiendo la identidad digital.
Autenticación y acceso a los RREE en la UC3M
Angel Vicente Romero Galindo
Programación Orientada a Eventos
RECUERDA INGRESAR A LA PÁGINA POR ESTE BOTÓN!!
Tutorial del backoffice PARA inscripción en línea, ACTUALIZACION DE DATOS Y ENVIO DE PAGOS VERSION 2.0 – 4/10/2017.
Helpers en ASP.NET MVC.
Capítulo 4 La API File para manejar archivos
MANEJO DE ARCHIVOS DIGITALES
Tutorial Holdings Management (Administración de Colecciones)
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Pasos para Desencriptar la Información Confidencial Enviada al Cliente
Formularios HTML.
Desarrollo de sitios web con PHP y MySQL
INSTALACION DE MOODLE.
HIPERVÍNCULO Escarlet Hernández Casas 1F MATUTINO.
HIPERVINCUL0 EVELYN ANAHI ESTRADA MENDOZA 1F T/M.
¿Qué es un hipervínculo? Fabiola Yazmin Gómez Torres. 1.F t/m BGC.
Samanta Janet Correa Proa 1ª A T/M BGC.  Son enlaces o rutas de acceso a otro archivo, pagina Web o una dirección de correo electrónico, es una herramienta.
HACKEAR CUENTA FACEBOOK USANDO PHISHING. HACKEAR CUENTA FACEBOOK CREANDO UN CLON DE LA PAGINA PARA PHISHING En el navegador que utilizas habitualmente,
Declaración de operaciones
EDUCACIÓN SUPERIOR INSTRUCTIVO DE INSCRIPCIÓN.
LISTAS PERSONALIZADAS
LISTAS PERSONALIZADAS
EDUCACIÓN SUPERIOR INSTRUCTIVO DE INSCRIPCIÓN.
Bases para una Tienda Online  En internet hay muchas posibilidades de negocios, desde ofrecer servicios hasta la venta de productos.  Usando el sistema.
01 Registro & Mi Perfil “My Profile”
helppeople Single Sign -On
HTML.
HTML.
Docente: Valerio Herrera, Luis E. Experiencia Formativa III Semana 4: Servidores Web.
Ataques XSS y CSRF CI-2413 Desarrollo de Aplicaciones para Internet.
Intr. a la creación y gestión de páginas web
Introducción al PHP Angel Vicente Romero Galindo Angel Vicente Romero Galindo.
1. CONEXIÓN DE JAVA CON MYSQL ING. JOSÉ VÉLIZ. PASO NO. 1 Después de creada la base de datos debemos ingresar a la aplicación Java y crear un nuevo proyecto,
Transcripción de la presentación:

Desarrollo de sitios web con PHP y MySQL Formularios José Mariano González Romano

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 n Desde PHP se puede acceder fácilmente a los datos introducidos desde un formulario HTML n Veámoslo con un ejemplo simple

Acceso a formularios desde PHP n Fichero uno.php Edad: n Fichero dos.php <?PHP print (“La edad es: $edad”); ?>

Acceso a formularios desde PHP

METODOS $_POST (link):link Es una matriz asociativa de variables que fueron obtenidas por el método HTTP POST. Por lo general son enviadas por un formulario. Ej: El form tiene un input con id/name igual a Nombre, nosotros le ponemos el valor Pablo, luego hacemos print $_POST[‘nombre’], y obtendríamos Pablo $_GET (link):link Es una matriz asociativa de variables que fueron obtenidas mediante parametros URL. Son enviadas en la url: Ej: Tenemos ahí obtenemos si hacemos print $_GET[‘nombre’], obtendríamos Pablo. $_COOKIE (link):link Es una matriz asociativa de variables que fueron obtenidas mediante HTTP Cookies. Ej: Se tiene que setear una variable cookies antes, por ejemplo setcookie(“nombre”, “Pablo”); despues si hacemos print $_COOKIE[‘nombre’], obtendríamos Pablo. $_REQUEST (link):link Es una matriz asociativa de variables que contiene todo lo que contiene $_GET, $_POST y $_COOKIE. Resumen: Por lo tanto lo que podemos llegar a ver, es que, tanto $_GET, $_POST y $_COOKIE obtienen las variables de distintos métodos de envíos, por su parte $_REQUEST es una variable “superglobal” la cual encapsula todas las otras variables reservadas.

Acceso a formularios desde PHP n A partir de PHP 4.2.0, el valor por defecto de la directiva de PHP register_globals es off n 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 n 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’];

RECUPERAR DATOS DE FORMULARIO. $_REQUEST n Cuando un usuario pulsa el botón enviar de un formulario, la información que contenían sus campos es enviada a una dirección URL desde donde tendremos que recuperarla para tratarla de alguna manera. Por ejemplo, si realiza una compra, tendremos que recuperar los datos para completar el proceso de pago. La información del formulario “viaja” almacenada en variables que podremos recuperar y utilizar mediante PHP. Una de las formas de recuperación consiste en usar $_REQUEST.

REQUEST nos permite capturar variables enviadas desde formularios con los métodos GET o POST. Vamos a ver dos ejemplos de formularios (ejemplo1.html y ejemplo2.html), que en un caso se enviarán usando GET y en otro usando POST. Ambos formularios enviarán la información (action) a una página común desde donde recuperaremos los datos usando $_REQUEST. Como podemos observar, el ejemplo1.html envía los datos por GET mientras que el ejemplo2.html envía los datos por POST. Ahora bien, la acción o destino donde se enviarán los datos es la misma en los dos casos, la dirección ejemploRequest.php.

Acceso a formularios desde PHP n Fichero uno.php Edad: n Fichero dos.php <?PHP $edad = $_REQUEST[‘edad’]; print (“La edad es: $edad”); ?>

Acceso a formularios desde PHP n Ejercicio 1: formulario simple –Ilustra cómo acceder a los valores introducidos desde un formulario HTML

Acceso a formularios desde PHP n 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 n TEXT Introduzca la cadena a buscar: <?PHP $cadena = $_REQUEST[‘cadena’]; print ($cadena); ?>

Acceso a formularios desde PHP n RADIO Sexo: Mujer Hombre <?PHP $sexo = $_REQUEST[‘sexo’]; print ($sexo); ?>

Acceso a formularios desde PHP n CHECKBOX Garaje Piscina Jardín <?PHP $extras = $_REQUEST[‘extras’]; foreach ($extras as $extra) print (“$extra \n”); ?>

Acceso a formularios desde PHP n BUTTON <?PHP $actualizar = $_REQUEST[‘actualizar’]; if ($actualizar) print ("Se han actualizado los datos"); ?>

Acceso a formularios desde PHP n FILE <FORM ACTION="procesa.php" METHOD="post“ ENCTYPE="multipart/form-data">

Acceso a formularios desde PHP n HIDDEN <?PHP print(“ \n”); ?> <?PHP $username = $_REQUEST[‘username’]; print ($username); ?>

Acceso a formularios desde PHP n PASSWORD Contraseña: <?PHP $clave = $_REQUEST[‘clave’]; print ($clave); ?>

Acceso a formularios desde PHP n SUBMIT <?PHP $enviar = $_REQUEST[‘enviar’]; if ($enviar) print ("Se ha pulsado el botón de enviar"); ?>

Acceso a formularios desde PHP n SELECT simple Color: Rojo Verde Azul <?PHP $color = $_REQUEST[‘color’]; print ($color); ?>

Acceso a formularios desde PHP n SELECT múltiple Idiomas: Inglés Francés Alemán Holandés <?PHP $idiomas = $_REQUEST[‘idiomas’]; foreach ($idiomas as $idioma) print (“$idioma \n”); ?>

Acceso a formularios desde PHP n TEXTAREA Comentario: Este libro me parece... <?PHP $comentario = $_REQUEST[‘comentario’]; print ($comentario); ?>

Acceso a formularios desde PHP n 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 n 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 n Ventajas: –Disminuye el número de ficheros –Permite validar los datos del formulario en el propio formulario n Procedimiento: si se ha enviado el formulario: Procesar formulario si no: Mostrar formulario fsi

El formulario de PHP n 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 n 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: entonces la condición anterior se transforma en: if (isset($enviar)) o bien if ($enviar == “procesar”)

El formulario de PHP n 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 n Para subir un fichero al servidor se utiliza el elemento de entrada FILE n 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

Subida de ficheros al servidor n 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() n 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 n 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 fichero\n");

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 fichero\n");

Subida de ficheros al servidor n 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 n 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 n 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 n 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 n 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 n 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

REFERENCIAS n _cookie/ _cookie/ n request-php-diferencias-ventajas-y-problemas-de-get-post-request-ejercicios-ejemplos- cu00835b&catid=70&Itemid=193 request-php-diferencias-ventajas-y-problemas-de-get-post-request-ejercicios-ejemplos- cu00835b&catid=70&Itemid=193 n n