Académique Documents
Professionnel Documents
Culture Documents
CAPTULO 4.
NDICE DE CONTENIDOS
NDICE:
Formularios en PHP
Ejemplo:
Archivo: EjemploMetodoGet.Php5
<!-- Scripts PHP Por: ING. HERBERTH ARANDA ROJAS -->
<html>
<head>
<title>Ejemplo de Procesado de Formularios</title>
</head>
<body>
<H1>Ejemplo de Envio de Datos Mtodo GET PHP</H1>
Introduzca su Nombres:
En versiones anteriores a 4.2.0 PHP creaba una variable por cada elemento del FORM,
esta variable creada tena el mismo nombre que el cuadro de texto de la pgina anterior
y el valor que habamos introducido. Pero por razones de seguridad a partir de entonces
para acceder a las variables del formulario hay que usar el array de parmetros
$_POST[] o $_GET[] dependiendo del mtodo usado para enviar los parmetros.
En este ejemplo se ha creado una entrada en el array $_GET[] con el ndice 'nombre' y
con el valor que haya introducido el navegante.
El resultado del Script con el mtodo GET podemos ver sus parmetros pasados ya que
estn codificados en la URL.
Archivo: ProcesaMetodoGet.Phtml (Pude ser cualquier archivo con extensin
WEB, Html, Php, etc.)
La diferencia entre estos dos mtodos radica en la forma de enviar los datos a la
pgina, mientras que el mtodo GET enva los datos usando la URL, el mtodo
POST los enva por la entrada estndar STDIO.
Archivo: EjemploMetodoPost.Php5
<body>
<H1>Ejemplo de Envio de Datos Metodo POST</H1>
Introduzca su Nombres:
<FORM ACTION="procesaMetodoPost.phtml" METHOD="POST">
<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca Apellidos:<BR>
<INPUT TYPE="TEXT" NAME="Apellidos"><BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>
</body>
</html>
Archivo: ProcesaMetodoPost.Phtml
El resultado final es el mismo, solo que con el mtodo POST no podemos ver los
parmetros pasados ya que estn codificados en la STDIO. Por tanto ms efectivo a la
hora de enviar datos por la web.
Observa que el nombre de los scripts creados en .php, es el que debe llevar FORM
ACTION, para que pueda ser procesado.
El pasaje de los valores del formulario se puede realizar por dos mtodos distintos, que
son METHOD = "GET" y METHOD = "POST".
Cuando se utiliza el mtodo GET, todos los valores son pasados en la URL del
navegador y pueden ser observados en la misma.
Al utilizar el mtodo POST los valores son enviados por la entrada estndar
STDIO y no son visibles en la URL del navegador.
FORMULARIOS
Este punto es especialmente importante: si aprendemos correctamente a manipular todos
los objetos o controles de un formulario, podremos hacer funciones que nos permitan
validarlo antes de enviar estos datos a un servidor, ahorrndole la faena de tener que
verificar la correccin de los datos enviados.
FORM
PROPIEDADES:
action: Es una cadena que contiene la URL del parmetro ACTION del form, es
decir, la direccin en la que los datos del formulario sern procesados.
elements: Es un array que contiene todos los elementos del formulario, en el
mismo orden en el que se definen en el documento HTML. Por ejemplo, si en el
formulario hemos puesto, en este orden, una caja de texto, un checkbox y una
lista de seleccin, la caja de texto ser elements[0], el checkbox ser elements[1]
y la lista de seleccin ser elements[2].
encoding: Es una cadena que tiene la codificacin mime especificada en el
parmetro ENCTYPE del form.
method: Es una cadena que tiene el nombre del mtodo con el que se va a
recibir/procesar la informacin del formulario (GET/POST).
MTODOS:
HIDDEN
Es parecido a un campo de texto (objeto text) salvo que no tiene valor por defecto (no
tiene sentido pues el usuario no va a modificarlo) y que no se puede editar.
PROPIEDADES:
TEXT Y PASSWORD:
El control "TEXT" utilizado en los ejemplos anteriores nos permite Ingresar Texto que
ser procesado por la web, para devolver un resultado segn sea el caso de uso, con los
formularios y sus mtodos.
PROPIEDADES O ATRIBUTOS:
dafaultvalue: Es una cadena que contiene el valor por defecto que se le ha dado
a uno de estos objetos por defecto.
name: Es una cadena que contiene el valor del parmetro NAME.
value: Es una cadena que contiene el valor del parmetro VALUE.
maxlength: Nmero mximo de caracteres que puede contener el campo de
texto.
MTODOS
SINTAXIS:
EJEMPLO:
TEXTAREA:
SINTAXIS:
<textarea id="textarea_comunicacion" name="comunicacion" rows="10"
cols="50"></textarea>
La id es exactamente igual que en los casos anteriores, con name vamos a definir el
nombre de la variable que vamos a levantar con PHP via POST, rows es el nmero de
filas que queremos que tenga nuestro campo y cols es el ancho.
Entre los TAGS <textarea> y </textarea> se puede incluir un texto para que aparezca
por defecto.
EJEMPLO:
<Html>
<form>
<textarea id="textarea_comunicacion" name="comunicacion" rows="5"
cols="50">Escribe aqu lo que quieras</textarea>
</form>
</Html>
<Html>
<form>
<textarea id="comentario" name="comentario" rows="10" cols="30">
texto default si deseamos
</textarea>
</form>
</Html>
Tenemos tres tipos de botones: un botn genrico, 'button', que no tiene accin
asignada, y dos botones especficos, 'submit' y 'reset'. Estos dos ltimos s que tienen
una accin asignada al ser pulsados: el primero enva el formulario y el segundo limpia
los valores del formulario.
El control " SUBMIT " utilizado en los ejemplos nos permite Enviar una Accin,
Mandato o mtodo, para que se procese los datos enviados a la web del lado del cliente,
la Accin en este caso es CLIC, la cual se activa al pulsar con el mouse sobre el botn
SUBMIT del formulario creado.
PROPIEDADES:
MTODOS:
SINTAXIS:
EJEMPLO:
INPUTS
Son campos regularmente para el ingreso de texto, son los que vemos en los formularios
de contacto para ingresar nombre, correo electrnico, etc.
SINTAXIS:
<html>
<form>
<label for="nombre_campo">Texto</label>
<input id="nombre_campo" type="text" name="nombre" value="texto_default" />
</form>
</html>
La primera lnea label sirve para identificar el nombre del campo que le sigue, es
adems la etiqueta que aparece para que el usuario sepa qu dato se le est pidiendo que
llene aunque no es necesario encerrarlo en una etiqueta label.
Otra variante de este Input es el de tipo password que hace que el texto que se escribe
en el sea reemplazado por smbolos como proteccin:
El ltimo tipo de input que veremos es el submit que es el botn que regularmente
hacemos click para poder enviar un formulario con la informacin que llenamos.
<html>
<form name="input" action="programa.php" method="get">
Nombre:
<input type="text" name="nombre" />
<input type="submit" value="Enviar" />
</form>
</html>
RADIO (RADIOBUTTON)
Los controles de tipo Radio son los que vemos que tienen una forma redonda y se
pueden utilizar para preguntar opciones de tipo falso/verdadero, masculino/femenino,
etc. y en donde solo puede estar seleccionada una de las opciones.
Checked nos sirve para indicar que queremos que ese campo aparezca seleccionado
desde un inicio.
Los objetos radio slo nos permiten elegir una de entre todas las que hay. Estn
pensados para posibilidades mtuamente excluyentes (no se puede ser a la vez mayor de
18 aos y menor de 18 aos, no se puede estar a la vez soltero y casado, etc.).
PROPIEDADES:
checked: Valor booleano que nos dice si el radio est seleccionado o no.
defaultChecked: Valor booleano que nos dice si el radio debe estar
seleccionado por defecto o no.
length: Valor numrico que nos dice el nmero de opciones dentro de un grupo
de elementos radio.
name: Es una cadena que contiene el valor del parmetro NAME.
value: Es una cadena que contiene el valor del parmetro VALUE.
Hay que recordar que para agrupar elementos de tipo radio, todos ellos deben tener el
mismo valor en NAME.
MTODOS:
EJEMPLO:
<html>
<form>
<label for="nombre_input">Masculino</label>
<input type="radio" name="sexo" value="masculino" checked="checked"/>
<label for="nombre_input">Femenino</label>
<input type="radio" name="sexo" value="femenino" />
</form>
</html>
Estos controles son usados cuando se necesita que se pueda seleccionar una o ms
opciones de las que se presentan, o tambin cuando solo se presenta una opcin y
necesitamos que el usuario la marque por ejemplo para poder continuar con algn
proceso.
Los "checkboxes" nos permiten seleccionar varias opciones marcando el cuadrito que
aparece a su izquierda. El cuadrito pulsado equivale a un "s" y sin pulsar a un "no" o, lo
que es lo mismo, a "true" o "false" (Verdadero o Falso).
PROPIEDADES:
MTODOS:
<Html>
<form>
<H2>
Mac OS .
<input type="checkbox" name="sistema" value="mac" checked="checked"/>
<br />
Windows
<input type="checkbox" name="sistema" value="windows" /> <br />
Apple
<input type="checkbox" name="sistema" value="apple" /> <br/>
Linux
<input type="checkbox" name="sistema" value="linux" />
</form>
</Html>
SELECT COMBOBOX
Este objeto representa una lista de opciones dentro de un formulario. Puede tratarse de
una lista desplegable de la que podremos escoger alguna (o algunas) de sus opciones.
PROPIEDADES:
length: Valor numrico que nos indica cuntas opciones tiene la lista
name: Es una cadena que contiene el valor del parmetro NAME
options: Se trata de un array que contiene cada una de las opciones de la lista.
Este array tiene, a su vez, las siguientes propiedades:
o defaultSelected: Valor booleano que nos indica si la opcin est
seleccionada por defecto.
o index: Valor numrico que nos da la posicin de la opcin dentro de la
lista.
o length: Valor numrico que nos dice cuntas opciones tiene la lista.
o options: Cadena con todo el cdigo HTML de la lista.
o selected: Valor booleano que nos dice si la opcin est actualmente
seleccionada o no.
o text: Cadena con el texto mostrado en la lista de una opcin concreta.
o value: Es una cadena que contiene el valor del parmetro VALUE de la
opcin concreta de la lista.
selectedIndex: Valor numrico que nos dice cul de todas las opciones
disponibles est actualmente seleccionada.
Size: Indicar el nmero de opciones visibles. Si le asignamos 1, la seleccin se
presentar como un men desplegable. Si le asignamos un valor mayor se
presentar como una lista con barra de desplazamiento.
multiple: Indica si se pueden realizar mltiples selecciones.
EJEMPLO:
<HTML>
<BODY>
<FORM ACTION="Frmprocombo.phtml" name="formulario" id="formulario"
method="POST">
Edad:<br>
<select name="edad">
<option value="<18" SELECTED>Menor de 18 aos</option>
<option value=">18 y <60">Entre 18 y 60 aos</option>
<option value=">60">Mayor de 60 aos</option>
</select>
</form>
</BODY>
</HTML>
RESUMEN
Cuadro de texto:
Casilla de verificacin:
Botn de opcin:
Men desplegable:
<option>martes</option>
<option value="miercoles">mircoles</option>
</select>
Boton de comando:
Campo oculto:
Este ltimo tipo de campo resulta especialmente til cuando que remos pasar datos
ocultos en un formulario.
Como habrs observado todos los tipos de campo tienen un modificador llamado name,
que no es otro que el nombre de la variable con la cual recogeremos los datos en el
script indicado por el modificador ACTION de la etiqueta FORM, con value
establecemos un valor por defecto.
EJEMPLOS PRCTICOS:
1.- Ingresar por medio de un formulario el nombre de una persona y el peso que le
corresponde. Posteriormente mostrar las leyendas segn los siguientes puntos:
Nota: Tener en cuenta que para que el programa funcione correctamente, debe ser grabado
como FrmPeso.php5, ya que ese es el nombre que se dio en el FORM ACTION.
En muchos casos se debe tener la seguridad de que el usuario halla ingresado los datos al
presionar el botn de entrada, para ello se debe comprobar que los campos estn completos. Hay
varias formas de realizar esto, lo ms sencillo es disponer de dos formularios, uno para el
ingreso de los datos y el otro para mostrar una leyenda (indicando que falta completar los datos)
y un botn para retornar al formulario de ingreso de datos, como se muestra en el siguiente
ejemplo.
<Html>
<Body>
<?PHP
if(isset($_POST['btnmostrar']))
{
if ($_REQUEST['Peso']<=50)
{ echo "Su Peso es Deficiente";}
elseif ($_REQUEST['Peso']>50 && $_REQUEST['Peso']<=80)
{ echo "Su Peso es Normal";}
else
{echo "Se ha Excedido de Peso";
}
}
else
{
?>
<FORM ACTION="<?php echo $_SERVER['PHP_SELF'];?>"
METHOD="POST">
<table border="0">
<tbody>
<tr>
<td>Nombre: </td>
<td><INPUT TYPE="TEXT" NAME="Nombre" size="25"></td>
</tr>
</tbody>
<tbody>
<tr>
<td>Peso(kg): </td>
<td><INPUT TYPE="TEXT" NAME="Peso" size="10"></td>
</tr>
</tbody>
<tbody>
<tr>
<td></td>
<td><INPUT TYPE="SUBMIT" NAME="btnmostrar" VALUE="Ingresar
Datos"></td>
</tr>
</tbody>
</table>
</FORM>
<?PHP
}
?>
</Body>
</Html>
2.- Permitir el ingreso de los datos de una persona (Nombre, DNI y Sueldo),
teniendo en cuenta que el Nombre y el DNI deben ser obligatorios. Si faltara
alguno de ellos volver al formulario de ingreso.
Si los campos estn completos, procesar el sueldo de la siguiente manera, si es
mayor a 2000, mostrar la leyenda "Sueldo Eficiente", de lo contrario mostrar
"Sueldo Ineficiente". Observar la presentacin.
<Br>
(*)DNI: <INPUT TYPE="TEXT" NAME="Dni" size="20">
<Br>
Sueldo: <INPUT TYPE="TEXT" NAME="Sueldo" size="15">
<Br><Br>
Los campos marcados con (*) son obligatorios.
<Br><Br>
<INPUT TYPE="SUBMIT" NAME="btnmostrar" VALUE="Ingresar Datos">
</FORM>
<?PHP
}
?>
</Body>
</Html>
Comentario:
Una vez ingresado los datos y presionado el botn1, la pgina se llama a s misma y la
pregunta inicial ser verdadera, ya que la instruccin $_REQUEST['boton1'] tendr
ahora asignado un valor.
Se contina con la asignacin a cada una de las variables de los respectivos campos y
comprobando que los campos estn completos, esto se logra utilizando la lnea:
if ($Nombre=="" || $Dni=="" )
La cual verifica si el nombre o el dni no contienen datos. De ser as, se enva una
leyenda indicando tal situacin y que deben completarse, luego se realiza un pequeo
formulario que llama a la misma pgina y que contiene un botn nicamente. Al
presionarse el botn2, se ejecuta nuevamente la pgina desde el principio realizndose
la pregunta inicial.
La pgina PHP que procesa los dos datos ingresados en el formulario es:
<!-- Scripts PHP Por: ING. HERBERTH ARANDA ROJAS -->
<html>
<head>
<title>SU CURRICULUM</title>
</head>
<body>
<?php
echo "El nombre ingresado:".$_REQUEST['nombre'];
echo "<br>";
echo "El curriculum:".$_REQUEST['curriculum'];
?>
</body>
</html>
4.- Ejemplo que Integra los controles Text, Select (ComboBox), CheckBox, Radio y
TextArea.
<!-- Scripts PHP Por: ING. HERBERTH ARANDA ROJAS -->
<HTML>
<BODY>
<H2>
<FORM METHOD="post" ACTION="FrmVariadoR.php5">
<input type="hidden" name="edad" value="28">
<p>Tu nombre
<input type="text" name="nombre" size="30" value="Herberth"></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></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" name="sexo" value="Mujer"></p>
</blockquote>
<p>Aficiones</p>
<p><textarea rows="5" name="aficiones" cols="28"></textarea></p>
<p><input type="submit" value="Enviar datos" name="enviar">
FrmVariadoR.php5
<!-- Scripts PHP Por: ING. HERBERTH ARANDA ROJAS -->
<?PHP
if (isset($_POST['enviar']))
{
echo "Hola <b>" . $_POST['nombre'] . "</b> que tal ests<BR>\n";
echo "Eres " . $_POST['sexo'] . "<BR>\n";
echo "Tienes " . $_POST['edad'] . "<BR>\n";
echo "Tu sistema favorito es " . $_POST['sistema'] . "<BR>\n";
if (isset($_POST['futbol']))
{
echo "Te gusta el futbol <BR>\n";
}
else
{
echo "NO te gusta el futbol <BR>\n";
}
if ($_POST['aficiones'] != "")
{
echo "Tus aficiones son: <BR>\n";
echo nl2br($_POST['aficiones']);
}
else
{
echo "NO tienes aficiones <BR>\n";
}
}
echo "<BR><a href='FrmVariado.php5'>VOLVER AL FORMULARIO</a>"
?>
EXTENSIN CAPTULO IV
1.- Crear el Script en PHP con controles para los casos compra del un cliente y
sueldo bsico de un cliente.
4.- Crear un Script que muestre el nmero de vocales y consonantes para una frase
clebre con funciones definidas por el usuario para cada una.
5.- Crear un Script con funciones definidas por el usuario para calcular el rea de
un tringulo, cuadrado y el cubo.