Post on 28-Jun-2020
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
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>
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 = “asir@sanseba.com”; $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>"); } ?>
ENVIAR UN E-MAIL II <form action="mailto: asir@sanseba.com" 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
ENVIAR UN E-MAIL
04/11/2016
. Implantación de Aplicaciones WEB JJ
Taboada León IES San Sebastián Huelva
Actividad: Realizar Formulario3
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