PÁGINAS DINÁMICAS WEB CON PHP. Unidad 4 Aplicaciones Web

Texto completo

(1)

PÁGINAS DINÁMICAS 

WEB CON PHP

Unidad 4

(2)

Agenda del curso PHP 2009

APLICACIONES WEB 

DIA 5

Administración de sesiones

(2 horas)

Uso de formularios en PHP

(2 horas)

Aplicaciones web

Variables predefinidas en PHP

(2 horas)

(3)

APLICACIONES WEB

Objetivos

Definir el término de aplicación web

Discutir la utilidad de las variables 

predefinidas

Discutir como se procesan los formularios

Explicar la administración de las sesiones

(4)

APLICACIONES WEB

Componentes

 

Navegador Web

 Este es el componente  del lado del cliente 

Servidor Web

 Este componente  acepta solicitudes por  páginas web hechas  por el cliente y las  retorna 

 Recursos Externos

 Las aplicaciones web  necesitan acceder a la  información o solicitar  servicios de más de una 

(5)

APLICACIONES WEB

Variables Predefinidas en PHP

Array asociativo de pares (clave, valor) variables globales disponibles $GLOBALS Array asociativo de pares (clave,valor) de sesion $_SESSION Array asociativo de pares (clave,valor) del servidor $_SERVER Array asociativo de pares (clave,valor) del entorno $_ENV

Array  asociativo  que  contiene  información  de  los  ficheros  recibidos  mediante POST $_FILES Array asociativo de pares (clave,valor) pasados a través de POST $_POST Array asociativo de pares (clave,valor) pasados a través de GET $_GET Array asociativo de pares (clave,valor) pasados a través de cookies $_COOKIE Nombre del script que se está ejecutando $_SERVER['PHP_SELF'] Número de parametros pasados al script en su ejecución. $_SERVER['argc'] Array de argumentos pasados en la ejecución del script. argv

(6)

APLICACIONES WEB

 

Variables Predefinidas en PHP

Variables de Servidor $_SERVER

Se utiliza $_SERVER['elemento']

Nombre del host del usuario que accede a la página. 'REMOTE_HOST' Dirección IP del Cliente que accede a la página. 'REMOTE_ADDR' Directorio raíz de documentos bajo el cual está siendo ejecutado el script , tal y como está definido en  el archivo de configuración. 'DOCUMENT_ROOT' Cadena de consulta mediante la cual se accedió a la página, si existe. 'QUERY_STRING' Indica cual método de solicitud fue usado para acceder a la página, como: GET, HEAD, POST o PUT 'REQUEST_METHOD' La dirección IP del servidor bajo el cual está siendo ejecutado el script. 'SERVER_ADDR' Nombre del servidor que se está ejecutando el script. 'SERVER_NAME' Nombre del script que se está ejecutando , relativo al directorio raíz. 'PHP_SELF' Contenido Elemento

(7)

APLICACIONES WEB

 

Variables Predefinidas en PHP

Ejercicio 1 mostrar variables de $_SERVER

  <html> <head><title>Variables predefinidas Ejemplo</title></head> <body> <?php print "<h2>Variable \$_SERVER</h2>"; print "<hr>"; print "<b>El contenido de \$_SERVER es:</b><br>"; foreach ($_SERVER as $clave=>$valor){ echo "<b>$clave:</b> $valor <br>"; } ?> </body> </html>

(8)

Agenda del curso PHP 2009

APLICACIONES WEB 

DIA 5

Administración de sesiones

(2 horas)

Uso de formularios en PHP

(2 horas)

Aplicaciones web

Variables predefinidas en PHP

(2 horas)

(9)

APLICACIONES WEB

Uso de Formularios

Un formulario es un objeto DOM de HTML 

Actúa como receptor de datos del cliente

Envía los datos al servidor web al script PHP 

Estos datos de entrada son enviados a través r 'action' 

Una sentencia de formulario puede ser:

form name="Form1" method="post" action="miscript.php">

<elementos del formulario>

</form>

Los elementos que puede contener un formulario

Botones: button, reset y submit.

Campos de texto: text, file, textarea, password y hiddes.

Componentes de selección: checkbox, radiobutton, select 

(10)

APLICACIONES WEB

Uso de Formularios

Componentes de un formulario 

<form name="Form1" method="post" action="miscript.php">

<elementos del formulario>

</form>

ACTION

 indicamos el script que va procesar la 

información que recogemos en el formulario

METHOD

 nos indica si el usuario del formulario va 

ha enviar datos ( 

post

 ) o recogerlos ( 

get

 )

 

(11)

APLICACIONES WEB

Uso de Formularios

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

(12)

APLICACIONES WEB

Uso de Formularios

TEXT

Introduzca la cadena a buscar:

<INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20">

<?PHP

$cadena = $_REQUEST[‘cadena’]; print ($cadena);

(13)

APLICACIONES WEB

Uso de Formularios

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);

?>

(14)

APLICACIONES WEB

Uso de Formularios

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”);

(15)

APLICACIONES WEB

Uso de Formularios

BUTTON

<INPUT TYPE="button" NAME=“actualizar" VALUE="Actualizar datos"> <?PHP    $actualizar = $_REQUEST[‘actualizar’];    if ($actualizar)       print ("Se han actualizado los datos"); ?>

(16)

APLICACIONES WEB

Uso de Formularios

FILE

<FORM ACTION="procesa.php" METHOD="post“  ENCTYPE="multipart/form­data">    <INPUT TYPE="file" NAME="fichero"> </FORM>

(17)

APLICACIONES WEB

Uso de Formularios

HIDDEN

<?PHP    print(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>\n”); ?> <?PHP    $username = $_REQUEST[‘username’];    print ($username); ?>

(18)

APLICACIONES WEB

Uso de Formularios

PASSWORD

Contraseña: <INPUT TYPE="password" NAME="clave"> <?PHP    $clave = $_REQUEST[‘clave’];       print ($clave); ?>

(19)

APLICACIONES WEB

Uso de Formularios

SUBMIT

<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos"> <?PHP    $enviar = $_REQUEST[‘enviar’];    if ($enviar)       print ("Se ha pulsado el botón de enviar"); ?>

(20)

APLICACIONES WEB

Uso de Formularios

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);

(21)

APLICACIONES WEB

Uso de Formularios

TEXTAREA

Comentario: <TEXTAREA COLS=“50" ROWS=“4" NAME="comentario"> Este libro me parece ... </TEXTAREA> <?PHP    $comentario = $_REQUEST[‘comentario’];    print ($comentario); ?>

(22)

APLICACIONES WEB

Uso de Formularios

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

(23)

APLICACIONES WEB

Uso de Formularios

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

(24)

APLICACIONES WEB

Uso de Formularios

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)

(25)

APLICACIONES WEB

Uso de Formularios

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($_REQUEST['$enviar']))

o bien

(26)

APLICACIONES WEB

Uso de Formularios

Ejercicio 3: formulario de PHP

Ilustra cómo crear páginas multipropósito que 

sirven tanto para mostrar un formulario como 

para procesarlo

a) b)

(27)

APLICACIONES WEB

Uso de Formularios

<HTML>  <BODY>  <FORM METHOD="post" ACTION="misdatos.php">  <input type="hidden" name="edad" value="55">  <p>Tu nombre <input type="text" name="nombre" size="30"  value="jose"></p>  <p>Tu sistema favorito   <select size="1" name="sistema">  <option selected value="Linux">Linux</option>  <option value="Unix">Unix</option>  <option value="Macintosh">Macintosh</option>  <option value="Windows">Windows</option>  </select>

(28)

APLICACIONES WEB

Uso de Formularios

<p>¿ Te gusta el futbol ? <input type="checkbox" name="futbol"  value="ON"></p>  <p>¿ Cual es tu sexo?</p>  <blockquote>  <p>Hombre<input type="radio" value="hombre" name="sexo"  checked></p>  <p>Mujer <input type="radio" value="mujer" name="sexo"></p>  </blockquote>  <p>Aficiones</p>  <p><textarea rows="5" name="aficiones" cols="28"></textarea></p>  <p><input type="submit" value="Enviar datos" name="enviar">   <input type="reset" value="Restablecer" name="B2"></p>  </FORM>  </BODY> 

(29)

APLICACIONES WEB

Uso de Formularios

<p>¿ Te gusta el futbol ? <input type="checkbox" name="futbol"  value="ON"></p>  <p>¿ Cual es tu sexo?</p>  <blockquote>  <p>Hombre<input type="radio" value="hombre" name="sexo"  checked></p>  <p>Mujer <input type="radio" value="mujer" name="sexo"></p>  </blockquote>  <p>Aficiones</p>  <p><textarea rows="5" name="aficiones" cols="28"></textarea></p>  <p><input type="submit" value="Enviar datos" name="enviar">   <input type="reset" value="Restablecer" name="B2"></p>  </FORM>  </BODY>  <HTML>

(30)

APLICACIONES WEB

Uso de Formularios

<?php  if (@$_POST['enviar']) {  $nombre=$_POST['nombre']; $sexo=$_POST['sexo']; $edad=$_POST['edad']; $sistema=$_POST['sistema']; $futbol=$_POST['futbol']; $aficiones=$_POST['aficiones']; echo "Hola <b>".$nombre."</b> como est&aacute;s<BR>\n";  echo "Eres " . $sexo . "<BR>\n";  echo "Tienes " . $edad . "<BR>\n";  echo "Tu sistema favorito es " . $sistema . "<BR>\n"; 

(31)

APLICACIONES WEB

Uso de Formularios

if ($aficiones != "") {  echo "Tus aficiones son: <BR>\n";  echo nl2br($aficiones);  } else {  echo "NO tienes aficiones <BR>\n";  }  echo "<br><a href=".$_SERVER['PHP_SELF'].">VOLVER AL  FORMULARIO</a>" ; } else {  ?> <HTML>  <BODY> <FORM METHOD="post" ACTION="<?PHP echo $_SERVER['PHP_SELF'] ? >">  <input type="hidden" name="edad" value="45">  <p>Tu nombre <input type="text" name="nombre" size="30"  value="jose"></p> 

(32)

APLICACIONES WEB

Uso de Formularios

<p>Tu sistema favorito   <select size="1" name="sistema">  <option selected value="Linux">Linux</option>  <option value="Unix">Unix</option>  <option value="Macintosh">Macintosh</option>  <option value="Windows">Windows</option>  </select></p>  <p>¿Te gusta el futbol ? <input type="checkbox" name="futbol" value="on" ></p>  <p>¿Cual es tu sexo?</p> <blockquote>  <p>Hombre<input type="radio" value="hombre" checked name="sexo"></p> <p>Mujer <input type="radio" value="mujer" name="sexo" ></p>  </blockquote> <p>Aficiones</p>  <p><textarea rows="5" name="aficiones" cols="28"></textarea></p>  <p><input type="submit" value="Enviar datos" name="enviar">  

(33)

APLICACIONES WEB

Uso de Formularios

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

(34)

APLICACIONES WEB

Uso de Formularios

;;;;;;;;;;;;;;;; ; 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

Subida de ficheros al servidor

(35)

APLICACIONES WEB

Uso de Formularios

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

(36)

APLICACIONES WEB

Uso de Formularios

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

(37)

APLICACIONES WEB

Uso de Formularios

La variable $_FILES contiene toda la información del Archivo 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

<INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400"> <INPUT TYPE="FILE" SIZE="44" NAME="imagen">

(38)

APLICACIONES WEB

Uso de Formularios

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");

(39)

APLICACIONES WEB

Uso de Formularios

Validar 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)

(40)

APLICACIONES WEB

Uso 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

(41)

Agenda del curso PHP 2009

APLICACIONES WEB 

DIA 5

Administración de sesiones

(2 horas)

Uso de formularios en PHP

(2 horas)

Aplicaciones web

Variables predefinidas en PHP

(2 horas)

Figure

Actualización...

Referencias

Actualización...