You are on page 1of 29

Unidad Didctica 2 Programacin de documentos web utilizando lenguajes de script de servidor

2.2 FORMULARIOS

Juan Jos Taboada Len

Implantacin de aplicaciones WEB

IES San Sebastin Huelva 1

ENVO Y RECEPCIN DE DATOS

El lenguaje PHP nos proporciona una manera sencilla para enviar y recibir datos a travs de un formulario, para procesar la informacin que el usuario ha ingresado. El proceso para el manejo de FORMULARIOS requiere generalmente dos pginas, una que implementa el formulario y otra que procesa los datos cargados en el formulario.

Juan Jos Taboada Len 2011/2012

Implantacin de Aplicaciones WEB

IES San Sebastin Huelva

Formularios
Los

Formularios no forman parte de PHP, sino del lenguaje estndar de Internet, HTML

Juan Jos Taboada Len 2011/2012

Implantacin de Aplicaciones WEB

IES San Sebastin Huelva

Acceso a formularios desde PHP (I)

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>

Juan Jos Taboada Len 2011/2012

Implantacin de Aplicaciones WEB

IES San Sebastin Huelva

Acceso a formularios desde PHP (II)

Acceso a formularios desde PHP (III)


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 configuracin php.ini, pero no es recomendable por motivos de seguridad. Una alternativa que permite hacer mnimos cambios en el cdigo ya existente es la siguiente:

$edad = $_REQUEST[edad];

Acceso a formularios desde PHP (IV)

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 (V)

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 / mltiple

Elemento TEXTAREA

Acceso a formularios desde PHP (VI)

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 (VII)

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 (VIII) checkbox


<input type="checkbox" name="pc" value="pc" checked="checked"> <input type="checkbox" name="portatil" value="portatil"> <input type="checkbox" name="DVD" value="DVD"></p>

<?PHP echo "El material informtico que tengo es:","<br>"; "<br>"; echo $_ $_REQUEST ['pc'],"<br>"; echo $_ $_REQUEST['portatil'],"<br>"; echo $_ $_REQUEST['DVD'],"<br>"; ?>

Acceso a formularios desde PHP (IX)

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 (X)

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

Acceso a formularios desde PHP (XI)

HIDDEN
<?PHP print(<INPUT TYPE=hidden NAME=username VALUE=$ usuario>\n); ?>

<?PHP $username = $_REQUEST[username]; print ($username); ?>

Acceso a formularios desde PHP (XII)

PASSWORD
Contrasea: <INPUT TYPE="password" NAME="clave">

<?PHP $clave = $_REQUEST[clave]; print ($clave); ?>

Acceso a formularios desde PHP (XIII)

SUBMIT
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos">

<?PHP $enviar = $_REQUEST[enviar]; if ($enviar) print ("Se ha pulsado el botn de enviar"); ?>

Acceso a formularios desde PHP (XIV)

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 (XV)

SELECT mltiple
Idiomas: <SELECT MULTIPLE SIZE="3" NAME="idiomas[]"> <OPTION VALUE="ingles" SELECTED>Ingls <OPTION VALUE="frances">Francs <OPTION VALUE="aleman">Alemn <OPTION VALUE="holandes">Holands </SELECT>

<?PHP $idiomas = $_REQUEST[ idiomas]; foreach ($idiomas as $idioma) print ($idioma<BR>\n); ?>

Acceso a formularios desde PHP (XVI)

TEXTAREA
Comentario: <TEXTAREA COLS=50" ROWS=4" NAME="comentario"> Este libro me parece ... </TEXTAREA>

<?PHP $comentario = $_REQUEST[comentario]; print ($comentario); ?>

Actividades sobre formularios


Realiza

las actividades formulario1 al formulario6 del cuadernoActividadesFormularioPHP

La seguridad en los envos de datos


El riesgo de que la informacin sea interceptada durante el proceso de transmisin desde el cliente hasta el Servidor El riesgo de daos en los contenidos de nuestro espacio de servidor:

El cdigo de cualquier formulario estar accesible slo con ir a la opcin Ver cdigo fuente y all estarn de nuevo todos los datos: nombre del script, nombres de las variables, etctera, con lo que, cualquier usuario y desde cualquier sitio, puede acceder a ese script.

Reducir, este tipo de riesgos: 1. Restringir a usuarios autorizados el uso de algunos subdirectorios 2. Almacenar datos importantes fuera del directorio root del servidor 3. El uso de algunas de las variables predefinidas como elementos de proteccin

Juan Jos Taboada Len 2011/2012

Implantacin de Aplicaciones WEB

IES San Sebastin Huelva

Envi del formulario de PHP

Para saber si se ha enviado el formulario se acude a la variable correspondiente al botn de envo. Si este botn aparece de la siguiente forma en el formulario HTML:
<INPUT TYPE="SUBMIT" NAME="enviar VALUE="procesar">

entonces la condicin anterior se transforma en:


if (isset($enviar))

o bien
if ($enviar == procesar)

La funcin isset isset( ()


Esta

funcin nos permite comprobar si una variable se ha definido y en ese caso devuelve un True. La sintaxis es isset($variable) Muy til para comprobar si se han rellenado los campos de un formulario

Ejemplo
Usando la funcin isset y el bloque if, realizar una comprobacin sobre una caja de texto cualquiera, advirtiendo al usuario en caso de que la caja se encuentre sin datos.

<?php if (isset($nombre) ){ echo "Hola $nombre, bienvenido a PHP";} else { echo "No has escrito nada"; } ?>

Valoracin en el propio documento


<form action=formulario.php method="post"> <input type="text" name="nombre" /> <input type="submit" name="enviar" /> </form> <?php if (isset($nombre) && $nombre!="") { echo "Hola $nombre";} else { if (isset($enviar)) { echo "Rellena los campos";} } ?>

ENVIAR UN EE-MAIL I

El primer argumento para esta funcin es el destinatario, el segundo especifica el tema del mensaje y el tercero debe contener el cuerpo del mensaje. Para enviar un mensaje, podramos utilizar el siguiente script:
<?php <? $ $to = a-serv@unsl.edu.ar"; $ $subject = Novedades!"; $ $body = "Hi,\n\nComienzo de clases"; if (mail($to, $subject, $body)) { echo("<p>Message successfully sent!</p>"); } else { echo("<p>Message delivery failed...</p>"); } ?>

Juan Jos Taboada Len 2011/2012

Implantacin de Aplicaciones WEB

IES San Sebastin Huelva

ENVIAR UN EE-MAIL II
<form action="mailto: gfuentes@unsl.edu.ar" method=post>

Tu Nombre: <input type=text name=nombre size=30> Tu Password: <input type=password name=clave size=8><p> Archivos a enviar: <input type=checkbox name=archivo value="Manual de HTML"> Manual de
HTML <input type=checkbox name=archivo value="Manual de PHP"> Manual de

PHP<p> Tu edad<p> <input type=radio name=edad value="-20">Menos de 20 aos<p>


<input type=radio name=edad value="20-40">Entre 20 y 40 aos<p> <input type=radio name=edad value="+40">Mas de 40 aos<p> <input type=hidden name=lugar value="pagina personal">

Como encontraste mi pgina: <select name=donde>


<option> De casualidad <option> Por el buscador Google <option> Por el buscador Yahoo

<option> Me la comentaron </select><p> Tus Comentarios:<br>


<textarea name=comentario rows=5 cols=40 wrap=virtual></textarea><p> <input type=submit value="Enviar"> <input type=reset value="Borrar">

</form>

Juan Jos Taboada Len 2011/2012

Implantacin de Aplicaciones WEB

IES San Sebastin Huelva

ENVIAR UN EE-MAIL

Juan Jos Taboada Len 2011/2012

Implantacin de Aplicaciones WEB

IES San Sebastin Huelva

2.2 FORMULARIOS

FIN Gracias

Juan Jos Taboada Len2011/2012

. Implantacin de Aplicaciones WEB

IES San Sebastin Huelva 29

You might also like