1. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
1. PHP avanzado, formularios
Unidad V Programación Orientada a la Web /Lenguaje de Programación Orientada a Objeto
Objetivo de la Unidad:
Analizar, diseñar y desarrollar aplicaciones dinámicas en el entorno Web a través de Lenguaje de Programación
Orientado a Objeto.
Sumario
Un formulario es el objeto de HTML, fundamental para enviar datos por parte del cliente al servidor web. Un
sitio o aplicación web que requiera un mínimo de interacción con el usuario debería utilizar formularios, pues
tiene distintos componentes que permiten ingresar datos para luego ser procesados.
Antes de comenzar a trabajar con el manejo de formularios en PHP, se trataran algunas variables predefinidas
en PHP, que serán de utilidad.
Variables Predefinidas en PHP
Las variables predefinidas en PHP, son variables que están disponibles para cualquier script que se ejecute y
cada una de ellas tiene distintos propósitos. La mayoría de estas variables son superglobales o globales
automáticas. Esto significa que están disponibles en todos los contextos a lo largo del script.
Variable del Servidor $_SERVER: Es un arreglo asociativo que contiene las variables definidas por el servidor
tal como cabeceras, rutas, y ubicaciones del scripts. Los valores de este arreglo son creados por el servidor
web. Crear el script variableserver.php
<?php
echo "<H2> Variables SERVER </H2>";
echo "<BR>";
echo "Contenidos de Variable Global SERVER <BR>";
foreach ($_SERVER as $clave => $valor) {
echo "$clave: $valor <BR>";} ?>
Variable HTPP_GET: $_GET
Es un arreglo asociativo de las variables pasadas al script actual a través del método Get.
Introducción
Una aplicación Web es una aplicación desarrollada usando tecnologías basadas en entornos web como
HTML, XML, JavaScript, PHP, ASP, Perl, Java Servlet, entre otras. Las aplicaciones web utilizan otras
aplicaciones como navegadores, servidores web y los protocolos de internet para poder funcionar.
Objetivo.
Se estudiaran características más avanzadas de PH, para el desarrollo de Sitios Web dinámicos que faciliten el
procesamiento entrada de datos por el usuario.
Se aprenderá a trabajar con formularios y a recuperar la información enviada dentro de un script PHP.
Requerimientos.
Se debe contar con: Un (1) computador teniendo como mínimo el Sistema Operativo Libre ( Canaima/Ubuntu), Servidor
apache, lenguaje de Programación PHP, Editor de texto(sublime text,)
Componentes.
2. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Variable HTPP_POST: $_POST
Es un arreglo asociativo de las variables pasadas al script actual a través del método Post.
Uso de Formularios en PHP.
Un formulario es un objeto perteneciente a la jerarquía DOM de HTML. Actúa como receptor de datos del
cliente para posteriormente enviarlos al servidor web. Estos datos de entrada son enviados al script de PHP
especificado como un action de ese formulario.
<Form name=”miformular” method=”post/get” action= miscript.php>
<< Elementos del Formulario>>
/Form>
Métodos del Formulario
Existen dos formas por medio de las cuales se puede enviar la información contenida en el formulario a un
script que hará su procesamiento. Estas dos formas son conocidas como métodos del formulario, los cuales
son los siguientes:
Método Get
Este método envía los datos del formulario al script en el encabezado del mensaje de solicitud HTPP(HTTP
Request). En este caso los datos son agregados al URL. Cuando se usa este método una cadena de
caracteres es visible en la barra de direcciones del navegador. Si se usa este método se emplea la variable
$_GET.
Suponga que tiene el siguiente formulario:
<form id="miformulario" method="Get" action="miscriptget.php">
<label for="name">Nombre: </label>
<input type="text" name="txtNombre" id="name" placeholder="Escribe tu Nombre"
maxlength="50" required > </div>
<label for="lastname">Apellido: </label>
<input type="text" name="txtApellido" id="lastname" placeholder="Escribe tu Apellido"
maxlength="30" required>
<button type="submit">Enviar</button></form>
miscriptget.php
<?php
echo "Su Nombre: ".$_GET['txtNombre']; VARIABLE ARREGLO ASOCIATIVO SUPERGLOBAL $_GET[]
echo "<BR>";
echo "Su Apellido: ".$_GET['txtApellido'];// valor del atributo name del input del formulario
? >
Cuando se envía el formulario, después del URL se agrega un signo de interrogación ?, seguido de una
cadena de caracteres que contiene los datos del formulario enviado.
3. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Método Post
Este método envía los datos del formulario al script a través del cuerpo del mensaje de solicitud HTTP(HTTP
Request). Los datos no son agregados al URL. Si se usa este método se emplea la variable $_POST.
Suponga que tiene el siguiente formulario:
<form id="miformulario" method="Post" action="miscriptpost.php">
<label for="name">Nombre: </label>
<input type="text" name="txtNombre" id="name" placeholder="Escribe tu Nombre"
maxlength="50" required > </div>
<label for="lastname">Apellido: </label>
<input type="text" name="txtApellido" id="lastname" placeholder="Escribe tu Apellido"
maxlength="30" required>
<button type="submit">Enviar</button>
</form>
miscriptpost.php
<?php
echo "Su Nombre: ".$_POST['txtNombre']; // VARIABLE ARREGLO ASOCIATIVO SUPERGLOBAL $_POST[]
echo "<BR>";
echo "Su Apellido: ".$_POST['txtApellido'];? >
GET vs POST
Problemas GET
puede enviar información binaria (archivos, imágenes, etc.) => necesario el método POST.
Problemas POST
Principios generales
Acceso a los diferentes Objetos del Formulario
Radio
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
4. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
<script> </script>
<title>[Procesamiento de Formularios PHP]</title>
</head>
<body>
<header>
<nav>
</nav>
</header>
<section class="container">
<h1>Procesamiento de Formularios en PHP </h1>
<form id="miformulario" method="GET" action="radio.php">
<div >
Sexo:
<INPUT TYPE="radio" NAME="sexo" VALUE="Femenino" >Mujer
<INPUT TYPE="radio" NAME="sexo" VALUE="Masculino">Hombre </div>
<div class="butonera">
<button type="submit">Enviar</button>
</div>
</form>
</section>
<footer class="copyright">
<div class="web-master">
<p>Web Master - Lissette Torrealba</p>
</div>
</footer>
</body>
</html>
radio.php
<?PHP
$sexo = $_GET['sexo'];
echo ($sexo);
?>
Los botones radio se llaman igual para que si se elige uno se desmarquen los otros.
Select
<!DOCTYPE html>
<html lang="en">
<head>
5. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
<script></script>
<title>[Procesamiento de Formularios PHP]</title>
</head>
<body>
<header>
<nav>
</nav>
</header>
<section class="container">
<h1>Procesaminto de Formularios en PHP </h1>
<form id="miformulario" method="GET" action="ListaSeleccion.php">
<div >
Color:
<SELECT NAME="color">
<OPTION VALUE="rojo" SELECTED>Rojo</OPTION>
<OPTION VALUE="verde">Verde</OPTION>
<OPTION VALUE="azul">Azul</OPTION>
</SELECT>
<div class="butonera">
<button type="submit">Enviar</button>
</div>
</form>
</section>
<footer class="copyright">
<div class="web-master">
<p>Web Master - Lissette Torrealba</p>
</div> </footer>
</body>
</html>
ListaSeleccion.php
<?PHP
$color = $_GET['color'];
echo $color;
?>
SELECT Múltiple
Valores vectoriales de un formulario:
6. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
1
año
<form id="miformulario" method="GET" action="SeleccionMultiple.php">
Idiomas:
<SELECT MULTIPLE SIZE="3" NAME="idiomas[]">
<OPTION VALUE="ingles" SELECTED>Inglés</OPTION>
<OPTION VALUE="frances">Francés</OPTION>
<OPTION VALUE="aleman">Alemán</OPTION>
<OPTION VALUE="holandes">Holandés</OPTION>
</SELECT>
SeleccionMultiple.php">
<?PHP
$idiomas = $_GET['idiomas'];
foreach ($idiomas as $idioma)
echo "$idioma<BR>n";
?>
CHECKBOX
botones de comprobación con el mismo nombre → usar arrays [ ]
<form id="miformulario" method="GET" action="arregloCheck.php">
Lugar Favorito:
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín
arregloCheck.php
<?PHP
$extras = $_GET['extras'];
foreach ($extras as $extra)
echo "$extra<BR>n";
?>
Actividad a Realizar
1.- Realizar la siguiente practica:
Crear el formulario.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" href="../recursos/img/favicon.ico">
<title>Programación II - Formulario - Uptaeb</title>
<link rel="stylesheet" href="../recursos/css/miestilos.css">
</head>
7. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
<body>
<header>
<img src="../recursos/img/uptaeb.jpg" alt="Logo Uptaeb">
</header>
<nav id="menu">
<ul>
<li>Principal</li>
<li>Fotos</li>
<li>Videos</li>
<li>Contacto</li>
</ul>
</nav>
<section id="principal">
<div id="contenido">
<form action="respuesta.html" class="formulario" method="get" action= “registro.php”>
<h2> Registro de Usuario </h2>
<div>
<label for="nombreUsuario">Nombre del usuario:</label>
<input type="text" id="nombreUsuario" class="elementoForm nombreUsuario" name="nombreUsuario"
placeholder="Introduzca su Nombre de Usuario" required pattern="[A-Za-z0-9]{5,40}" />
</div>
<div>
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" class="elementoForm texto" name="nombre" placeholder="Introduzca su
Nombre" title="Introduzca su Nombre" pattern="[A-Za-z]+s[A-Za-z]{5,40}" required />
</div>
<div>
<label for="email">E-mail:</label>
<input type="email" id="email" class="elementoForm email" name="email" placeholder="Introduzca su
Email" title="Introduzca su Email" pattern="^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-
]+)*$" required />
</div>
<div>
<label for="clave">Clave:</label>
<input type="password" id="clave" class="elementoForm clave" name="clave" placeholder="Introduzca
su Clave" title="Introduzca su Clave" required pattern="[A-Za-z0-9.!#$%&'*+/=?_-]{5,40}" />
</div>
9. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
if (array_key_exists('txtdireccion', $_GET)){
$direccion=$_GET['txtdireccion'];
}
if (array_key_exists('sexo', $_GET)){
$sexo=$_GET['sexo'];
}
if (array_key_exists('pasatiempos', $_GET)){
$pasatiempos=$_GET['pasatiempos'][0];
for ($i=1; $i < count($_GET['pasatiempos']); $i++)
{
$pasatiempos.=",".$_GET['pasatiempos'][$i];
}// fin for
}
if (array_key_exists('Ciudades', $_GET)){
$ciudades=$_GET['Ciudades'][0];
for ($i=1; $i < count($_GET['Ciudades']); $i++)
{
$ciudades.=",".$_GET['Ciudades'][$i];
}// fin for
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" href="recursos/img/favicon.ico">
<title>Informacion Registrada de Usuario</title>
<link rel="stylesheet" href="recursos/css/miestilos.css">
</head>
<body>
<header>
<img src="recursos/img/uptaeb.jpg" alt="Logo Uptaeb">
</header>
<nav id="menu">
<ul>
<li><a href="Vista/Formulario.html"> Principal </a></li>
<li>Fotos</li>
10. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
<li>Videos</li>
<li>Contacto</li>
</ul>
</nav>
<section id="principal">
<div>
<?php
print('<TABLE bordercolor="Blue" border="1" align="center">');
print("<TR><TD> Nombre:</TD><TD>$nombre</TD></TR>");
print("<TR><TD> Email:</TD><TD>$email</TD></TR>");
print("<TR><TD> Dirección:</TD><TD>$direccion</TD></TR>");
print("<TR><TD> Sexo:</TD><TD>$sexo</TD></TR>");
print("<TR><TD> PasaTiempos:</TD><TD>$pasatiempos</TD></TR>");
print("<TR><TD> Ciudades:</TD><TD>$ciudades</TD></TR>");
print("<BR>");
?>
</div>
</section>
</body>
</html>
2.- Con el ejercicio de Funciones del cálculo del IVA de la Guía ProgramaciónWebBasicoPHP, realizar la
entrada de datos del producto (nombre del producto, Código del producto, Precio del Producto) y mostrar la
salida de la
Autoevaluación
1.- Cual de las siguientes son variables predefinida HP?
a) $_ARRAYS
b) $_Get
c) $_POST
d) $_GET
2.- Una variable predefinida superglobal o global automática, esta disponible en todos los contextos a lo largo de
un script?
a) Verdadero
b) Falso
3.- Cuales de las siguientes afirmaciones son ciertas con respecto al método Post?
a) Este método envía los datos del formulario al script en el encabezado del mensaje de solicitud HTTP
b) Los datos enviados son agregados al URL.
c) Cuando se usa este método una cadena de caracteres es visible en la barra de direcciones del navegador
d) Este método envía los datos del formulario al script en el cuerpo del mensaje de solicitud HTTP.
11. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
3.- Cuales de las siguientes afirmaciones son ciertas con respecto al método Get?
a) Este método envía los datos del formulario al script en el encabezado del mensaje de solicitud HTTP
b) Los datos enviados son agregados al URL.
c) Cuando se usa este método una cadena de caracteres es visible en la barra de direcciones del navegador
d) Este método envía los datos del formulario al script en el cuerpo del mensaje de solicitud HTTP.
5.-Los datos de entrada son enviados al script de PHP especificado en el método post/get de ese
formulario.
a) Verdadero
b) Falso
Referencias Bibliográficas
IBM Capacitación (2008) Programación Web Avanzada