generaciÓn de documentos web con guiones de servidor · unidad didáctica 2 generaciÓn de...

25
Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS www.docencia.taboadaleon.es 04/11/2016 . Implantación de Aplicaciones WEB JJ Taboada León IES San Sebastián Huelva 1

Upload: others

Post on 28-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Unidad Didáctica 2

GENERACIÓN DE DOCUMENTOS

WEB CON GUIONES DE

SERVIDOR

2.4 FORMULARIOS www.docencia.taboadaleon.es

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva 1

Page 2: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Formularios (I)

Los formularios permiten al usuario introducir

información y, por lo tanto, interactuar con el sitio.

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva

Un formulario HTML se define entre las etiquetas <form> y </form>.

<form [action="url_de_procesamiento”][method="GET"|"POST”][ id="identificador_formulario”][target="destino”]> ... </form>

Page 3: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Formularios (II)

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva

Parámetro Descripción

Action URL relativa o absoluta (Uniform Resource Locator) que procesará el

formulario, en nuestro caso, un script PHP. Este atributo es obligatorio

para cumplir con la estricta recomendación XHTML.

Method Modo de transmisión al servidor de la información introducida en el

formulario. GET (valor predeterminado): los datos del formulario se

transmiten en la URL. POST: los datos del formulario se transmiten en el

cuerpo de la consulta.

Id Identificador del formulario. Si la página HTML contiene varios

formularios, el identificador permite diferenciarlos. En nuestro caso, este

identificador no tiene ningún valor porque no se recupera en el script de

procesamiento del formulario. Por contra, se puede utilizar del lado del

cliente, en JavaScript, por ejemplo.

Target Destino (por ejemplo, otra ventana) en el que se abrirá la dirección URL de

destino.

Page 4: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Recuperar datos de un formulario (I)

Fichero uno.php <html>

<body>

<form action=”dos.php” method=”post”>

Su nombre: <input type=”text” name=”nombre”>

Su edad: <input type=”text” name=”edad”>

<input type=”submit” value=”aceptar”>

</form>

</body>

</html>

Fichero dos.php <html>

<body>

<?php

$nombre=(isset($_POST[’nombre’]))?htmlspecialchars($_POST[’nombre’]):’’; $edad=(isset($_POST[’edad’]))?(int)$_POST[’edad’]:’’;

print (“Hola: $nombre”)

print (“su edad es: $edad”);

?>

</body>

</html>

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva

Actividad: Realizar Formulario1 del cuaderno

de actividades

Page 5: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Recuperar datos de un formulario(II)

Todos los campos del formulario se almacenan en una matriz asociativa $_POST o $_GET según el valor de method

Ejemplo: $_POST[’nombre’]

La clave de la matriz es igual al nombre del campo en el formulario (atributo name de la etiqueta <input>, <select> o <textarea>) y el valor igual al valor introducido en el campo.

Ejemplo: <input type=”text” name=”nombre”>

Esta información también está disponible en la matriz asociativa $_REQUEST que agrupa el contenido de las matrices $_GET y $_POST

04/11/2016 5

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 6: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Recuperar datos de un formulario(III)

La función isset( )

Esta función nos permite comprobar si

una variable se ha definido y en ese caso

devuelve un True.

La sintaxis es isset($variable) Ejemplo: if (isset($_POST[’nombre’])){ … }

Muy útil para comprobar si se han

rellenado los campos de un formulario

04/11/2016 IES San Sebastián Huelva

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 7: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

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 / múltiple

◦ Elemento TEXTAREA

04/11/2016 7

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 8: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

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=(isset($_POST[’cadena’]))?$_POST[’cadena’]:’’;

print ($cadena);

?>

04/11/2016 8

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 9: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

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 = isset($_POST[’sexo’]))?$_POST[’sexo’]:’’;

print ($sexo);

?>

04/11/2016 9

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 10: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

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 informático que tengo es:","<br>"; "<br>"; echo $_REQUEST ['pc'],"<br>";

echo $_REQUEST['portatil'],"<br>"; echo $_REQUEST['DVD'],"<br>";

?>

04/11/2016 10

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 11: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Acceso a formularios desde PHP (IX)

BUTTON

<INPUT TYPE="button" NAME=“actualizar" VALUE="Actualizar datos">

<?PHP

if (isset($_POST[’actualizar’]))

print ("Se han actualizado los datos");

?>

04/11/2016 11

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 12: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Acceso a formularios desde PHP (X)

FILE

<FORM ACTION="procesa.php" METHOD="post“ ENCTYPE="multipart/form-data">

<INPUT TYPE="file" NAME="fichero">

</FORM>

04/11/2016 12

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 13: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Acceso a formularios desde PHP (XI)

HIDDEN

<?PHP

print(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>\n”);

?>

<?PHP

$username = isset($_POST[’username’]))?$_POST[’username’]:’’;

print ($username);

?>

04/11/2016 13

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 14: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Acceso a formularios desde PHP (XII)

PASSWORD

Contraseña: <INPUT TYPE="password" NAME="clave">

<?PHP

$clave = isset($_POST[’clave’]))?$_POST[’clave’]:’’;

print ($clave);

?>

04/11/2016 14

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 15: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Acceso a formularios desde PHP (XIII)

SUBMIT

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

<?PHP

if (isset($_POST[’enviar’]))

print ("Se han enviado los datos");

?>

04/11/2016 15

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 16: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

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

?>

04/11/2016 16

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 17: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Acceso a formularios desde PHP

(XV)

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

?>

04/11/2016 17

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 18: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

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

?>

04/11/2016 18

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 19: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Valoración en el propio documento (I)

<form action=“formulario.php” method="post">

<input type="text" name="nombre" />

<input type="submit" name="enviar" />

</form>

<?php

if (isset($_POST['nombre'])){

if ($_POST['nombre']!="") {

echo "Hola ". $_POST['nombre'];

}

else if (isset($_POST['enviar'])) {

echo "Rellena los campos";}

}

?>

04/11/2016 IES San Sebastián Huelva

. Implantación de Aplicaciones WEB JJ

Taboada León

Page 20: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

Valoración en el propio documento (II)

<?php

$form_apellido = (isset($_POST[’apellido’]))?$_POST[’apellido’]:’’;

$form_nombre = (isset($_POST[’nombre’]))?$_POST[’nombre’]:’’

?>

<!DOCTYPE html >

<html >

<head>

<title>Entrada</title>

</head>

<body>

<form action="entrada.php" method="post">

<div> Apellidos: <input type="text" name="apellido"

value="<?php echo $form_apellido ?>" /><br/>

Nombre: <input type="text" name="nombre"

value="<?php echo $form_nombre ?>" /><br/>

<input type="submit" name="ok" value="OK" />

</div>

</form>

</body>

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva

Actividad: Realizar formulario2

Page 21: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

La seguridad en los envíos de datos

El riesgo de que la información sea

interceptada durante el proceso de

transmisión desde el cliente hasta el Servidor

El riesgo de daños en los contenidos de

nuestro espacio de servidor:

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva

El código de cualquier

formulario estará accesible sólo con

ir a la opción Ver código fuente y allí

estarán de nuevo todos los datos:

nombre del script, nombres de las

variables, etcétera, 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

protección

Page 22: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

ENVIAR UN E-MAIL I

El primer argumento para esta función es el destinatario, el

segundo especifica el tema del mensaje y el tercero debe contener

el cuerpo del mensaje. Para enviar un mensaje, podríamos utilizar el

siguiente script:

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva

<?php $to = “[email protected]”; $subject = “Novedades!"; $body = "Hola,\n\nComienzo de las clases"; if (mail($to, $subject, $body)) { echo("<p>Mensaje enviado!</p>"); } else { echo("<p>El mensaje no enviado...</p>"); } ?>

Page 23: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

ENVIAR UN E-MAIL II <form action="mailto: [email protected]" 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 años<p>

<input type=radio name=edad value="20-40">Entre 20 y 40 años<p>

<input type=radio name=edad value="+40">Mas de 40 años<p>

<input type=hidden name=lugar value="pagina personal">

Como encontraste mi página:

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

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva

Page 24: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

ENVIAR UN E-MAIL

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva

Actividad: Realizar Formulario3

Page 25: GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR · Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR 2.4 FORMULARIOS 04/11/2016 . Implantación de Aplicaciones

2.4 FORMULARIOS

FIN DE LA PRESENTACIÓN

Gracias

04/11/2016

. Implantación de Aplicaciones WEB JJ

Taboada León IES San Sebastián Huelva 25