Vous êtes sur la page 1sur 9

Módulo: LMS

Índice de la unidad
1. Características básicas
U.D.2: Introducción al HTML 2. Etiqueta de formulario
3. Campos de entrada
(Segunda parte)
4. Vectores globales
5. Descarga de ficheros desde un formulario
FORMULARIOS
6. Bibliografía

1. Características básicas 2. Etiqueta de formulario


Los Formularios no forman parte HTML. Todo formulario comienza con la etiqueta
Vamos a dedicar en esta unidad didáctica <FORM ACTION="lo_que_sea.php"
algunas líneas al HTML, para saber cómo METHOD="post/get">
mandar información de un formulario a otro
La siguiente etiqueta <FORM> indica el final del
formulario.

Profesora: Isabel Martí Romeu 1


Módulo: LMS

2. Etiqueta de formulario 3. Campos de entrada


Cuando creamos un formulario hay dos A partir de la etiqueta <FORM> vienen los
propiedades muy importantes: campos de entrada de datos que pueden ser:
 Acción (ACTION): Dónde se enviará el formulario  Cuadro de texto
para ser procesado <input type="text" name="nombre" size="20“
 Método (METHOD): Cómo se debería procesar el value="jose">
formulario  Cuadro de texto con barras de desplazamiento:
 GET: Envía los valores del formulario como parte de
<textarea rows="5" name="descripcion" cols="20">Es
la URL. (normalmente mensajes cortos)
de color rojo</textarea>
 POST: Envía los valores directamente al código que
va a procesarlo

3. Campos de entrada 3. Campos de entrada


 Casilla de verificación:  Menú desplegable:
<input type="checkbox" name="cambiar" value="ON"> <select size="1" name="dia">
 Botón de opción: <option selected value="lunes">lunes</option>
<input type="radio" value="azul" checked <option>martes</option>
name="color"> <option value="miercoles">miércoles</option>
 Boton de comando: </select>
<input type="submit" value="enviar" name="enviar">

Profesora: Isabel Martí Romeu 2


Módulo: LMS

3. Campos de entrada 3. Campos de entrada


 Campo oculto: Todos lo tipos de campo tienen un modificador
<input type="hidden" name="edad" value="55"> llamado name , que no es otro que el nombre
Este último tipo de campo resulta especialmente útil
de la variable con la cual recogeremos los datos
cuando que remos pasar datos ocultos en un
en el script indicado por el modificador ACTION
formulario.
de la etiqueta FORM. Con value establecemos
un valor por defecto

3. Campos de entrada 3. Campos de entrada


Ejemplo: Muestra:
<HTML>
<BODY>
<h2>Listado de contactos:</h2>
<FORM METHOD="post" ACTION="">
<fieldset>
<input type = “text” name = “people[0]” value = Andres><br>
<input type = “text” name = “people[1]” value = Juan /><br>
<input type = “text” name = “people[2]” value = Isabel /><br>
<input type = “text” name = “people[3]” value = Leonor /><br>
<input type = “text” name = “people[4]” value = Alberto /><br>
<input type = “text” name = “people[5]” value = Silvia /><br>
<button>
submit
</button>
</fiedlset>
</FORM>
</BODY>
<HTML>

Profesora: Isabel Martí Romeu 3


Módulo: LMS

3. Campos de entrada 3. Campos de entrada

Ejemplo: Ejemplo:
<select size="1" name="sistema">
<HTML>
<option selected value="Linux">Linux</option>
<BODY>
<option value="Unix">Unix</option>
<FORM METHOD="post" ACTION="mis_datos.php">
<option value="Macintosh">Macintosh</option>
<input type="hidden" name="edad" value="55">
<option value=&qmargin-left: 75"><option
<p>Tu nombre <input type="text" name="nombre" value="Windows">Windows</option>
size="30" value="jose"></p>
</select></p>
<p>Tu sistema favorito <p>¿Te gusta el futbol ? <input type="checkbox"
name="futbol" value="ON"></p>

3. Campos de entrada 3. Campos de entrada

Ejemplo: Ejemplo:
<p>¿Cual es tu sexo?</p> <p>Aficiones</p>
<blockquote> <p><textarea rows="5" name="aficiones"
<p>Hombre<input type="radio" value="hombre" cols="28"></textarea></p>
checked name="sexo"></p> <p><input type="submit" value="Enviar datos"
<p>Mujer <input type="radio" name="sexo" name="enviar">
value="mujer"></p> <input type="res-left: 50"> <input type="reset"
value="Restablecer" name="B2"></p>
</blockquote>
</FORM>
</BODY>
<HTML>

Profesora: Isabel Martí Romeu 4


Módulo: LMS

3. Campos de entrada 3. Campos de entrada


Muestra:
Una vez rellenados los datos del formulario,
pulsamos el botón Enviar datos , con lo que el
campo enviar toma lo que su etiqueta value
indica, es decir enviar="Enviar datos".
Posteriormente se comprobará si se han
enviado datos, mirando si la variable $enviar no
está vacía.

4. Vectores globales 4. Vectores globales


 $_POST  $_GET igual pero invocando método GET en
 Cuando invocamos al metodo POST, se está el formulario
preparando el contenido del vector $_POST, para  $_SERVER Vector superglobal que nos
almacenar el contenido del formulario.
ofrece información sobre el servidor de PHP
 En nuestro ejemplo, los campos del vector IIS.
$_POST serán:
 $_POST[‘name’], $_POST[‘email’], $_POST[‘message’],
$_POST[‘ewComments’]
 La clave de acceso es el nombre del elemento de
entrada del formulario

Profesora: Isabel Martí Romeu 5


Módulo: LMS

4. Vectores globales 4. Vectores globales


Ejemplo: Ejemplo:
Los datos del formulario del ejemplo anterior,
<?PHP
se han enviado por el método post, por tanto, echo "Hola <b>" . $_POST['nombre'] . "</b>
se encuentran en la variable $_POST que tal estás<BR>";
echo "Eres " . $_POST['sexo'] . "<BR>";
En nuestro script lo primero que evaluamos es
echo "Tienes " . $_POST['edad'] . "<BR>";
que se haya enviado el formulario, y para ello echo "Tu sistema favorito es " .
nada mejor que comprobar la variable $enviar $_POST['sistema'] . "<BR>";

4. Vectores globales
if (isset($_POST['futbol'])) {
echo "Te gusta el futbol <BR>";
} else {
echo "NO te gusta el futbol <BR>";
}
if ($_POST['aficiones'] != "") {
EJEMPLOS
echo "Tus aficiones son: <BR>";
echo nl2br($_POST['aficiones']);
} else {
echo "NO tienes aficiones <BR>";
}
echo "<a href='formulario.htm'>
VOLVER AL FORMULARIO</a>"
?>

Profesora: Isabel Martí Romeu 6


Módulo: LMS

5. Descarga de ficheros desde un 5. Descarga de ficheros desde un


formulario formulario
Para descargar un archivo desde un formulario, El formulario debe usar el método post , y el
utilizaremos una etiqueta INPUT de tipo FILE , atributo post , y el atributo enctype debe tener el
valor multipart/form-data . Además al formulario
soportada a partir de las versiones de los
debemos añadirle un campo oculto de nombre
navegadores Nestcape Navigator 2.0 e Internet
MAX_FILE_SIZE , al cuál le daremos el valor en
Explorer 4.0. bytes del tamaño máximo del archivo a
descargar

5. Descarga de ficheros desde un 5. Descarga de ficheros desde un


formulario formulario
Ejemplo: Cuando el formulario es enviado, PHP detectará
<FORM ENCTYPE="multipart/form-data" automáticamente que se está descargando un
ACTION="7-3.php" METHOD="post"> archivo y lo colocará en un directorio temporal
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" en el servidor. Dicho directorio será que el que
value="100000">
esté indicado en el archivo de configuración
<INPUT NAME="archivo" TYPE="file">
<INPUT TYPE="submit" VALUE="Descargar php.ini , o en su defecto en el directorio
Archivo"> temporal del sistema.
</FORM>

Profesora: Isabel Martí Romeu 7


Módulo: LMS

5. Descarga de ficheros desde un 5. Descarga de ficheros desde un


formulario formulario
Cuando PHP detecta que se está descargando Si el proceso de descarga no ha sido correcto la
un archivo crea varias variables con el prefijo del variable archivo tomará el valor none y _size será 0 ,
nombre del archivo pero con distintas y si el proceso ha sido correcto, pero la variable
terminaciones. La variable terminada en: $_FILES['archivo']['size'] da 0 , quiere decir que el
$_FILES['archivo']['name'] contiene el nombre archivo a descargar supera el tamaño máximo
original del archivo, indicado por MAX_FILE_SIZE.
$_FILES['archivo']['size'] contiene el tamaño en Una vez descargado el archivo, lo primero que
bytes de éste, y debemos hacer es moverlo a otro lugar, pues sino se
$_FILES['archivo']['type'] nos indicará el tipo de hace nada con él, cuando acabe la ejecución de la
archivo si éste es ofrecido por el navegador. página se borrará.

5. Descarga de ficheros desde un 5. Descarga de ficheros desde un


formulario formulario
if (! move_uploaded_file
Ejemplo: ($_FILES['archivo']['tmp_name'],
"directorio/".$_FILES['archivo']['name'])) {
<HTML>
echo "<h2>No se ha podido copiar el archivo</h2>n";
<BODY> }
<?PHP } elseif ($_FILES['archivo']['name'] != "" &&
if ($_FILES['archivo']['name'] != "" && $FILES['archivo']['size'] == 0) {
$_FILES['archivo']['size'] != 0){ echo "<h2>Tamaño de archivo superado</h2>n";
} else {
echo "Nombre: $archivo_name <BR>n";
echo "<h2>No ha escogido un archivo para
echo "Tamaño: $archivo_size <BR>n"; descargar</h2>n";
echo "Tipo: $archivo_type <BR>n"; }
echo "<HR>n";
?>

Profesora: Isabel Martí Romeu 8


Módulo: LMS

5. Descarga de ficheros desde un


formulario 6. Bibliografía
<FORM ENCTYPE="multipart/form-data"
ACTION="<?php echo $_SERVER['PHP_SELF']; ?>"  Programación con PHP 6 y MySql.
METHOD="post"> Andy Harris.
<INPUT type="hidden" name="MAX_FILE_SIZE"
value="100000">
Editorial Anaya.
<p><b>Archivo a descargar<b><br>  Manual de PHP:
<INPUT type="file" name="archivo“ http://www.webtaller.com/manual-
size="35"></p>
<p><INPUT type="submit" name="enviar"
php/formularios_PHP.php
value="Aceptar"></p>
</FORM>
</BODY>
</HTML>

Profesora: Isabel Martí Romeu 9

Vous aimerez peut-être aussi