



(13 opiniones)
(mi primer formulario)
Una vez reiniciado jedit.org, corte y pegue el siguiente código en una archivo nuevo:
<?PHP
$titulo = "Mi primer formulario";
?>
<html>
<head><title> <?= $titulo ?> </title></head>
<body>
<h1 align="center">Formulario</h1>
<form action="calcula.php" method="post">
<p align="center">Fecha de nacimiento:
<input type="text" name="dia" value="00" size="2" maxlength="2">
<select name="mes">
<option value="1">Ene</option>
<option value="2">Feb</option>
<option value="3">Mar</option>
<option value="4">Abr</option>
<option value="5">May</option>
<option value="6">Jun</option>
<option value="7">Jul</option>
<option value="8">Ago</option>
<option value="9">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dic</option>
</select>
<input type="text" name="year" value="19??" size="4" maxlength="4">
</p>
<p align="center"> Sexo: <select name="sexo">
<option value="h">Hombre</option>
<option value="m">Mujer</option>
</select>
</p>
<p align="center"> ¿Usted fuma?: <input type="checkbox" name="fuma" value="1"></p>
<p align="center"><input type="submit" name="boton" value="Enviar"></p>
</form>
</html>
Cómo verá, el código PHP se coloca entre los símbolos (<?) y (?>) al código que está entre estos símbolos se le conoce como bloque. Usted puede abrir y cerrar tantos bloques como lo desee: todo lo que este fuera de los bloques será considerado como HTML normal. Dese cuenta, además, que las líneas de PHP terminan con un punto y coma (;), si usted las olvida, el compilador de PHP le enviará un mensaje de error, indicándole la línea donde este se produjo.
Salve este archivo como formulario.php
. Este formulario nos servirá para enviar cinco valores (dia, mes, year, sexo y fuma) a la pagina calcula.php a través del protocolo HTTP, usando el método POST. En el formulario hemos usado campos tipo text, select y checkbox:
<input type="text" name="dia" value="00" size="2" maxlength="2">
<select name="mes">
<input type="checkbox" name="fuma" value="1">
GET y POST. En el ambiente Web, existen dos métodos para enviar información: GET y POST. El método GET utiliza el mismo URL del navegador para enviar la información (seguramente usted se habrá percatado que muchas veces el URL del navegador está lleno de símbolos extraños). GET, además, está limitado a 1024 caracteres. El método POST, por otra parte, utiliza su propio socket para enviar información a Apache, y debido a ello las variables no se muestran en el URL. POST no está limitado a 1024 y puede enviar (además de carácteres) datos binarios como imágenes o archivos comprimidos. En general, al tratarse de formularios, utilice el método POST.
A continuación, corte y pegue el siguiente código en una archivo nuevo de Jedit.org:
<?PHP
$titulo = "Pronóstico";
// Tomo las variables que envio el formulario
$dia=$_POST['dia'];
$mes=$_POST['mes'];
$year=$_POST['year'];
$sexo=$_POST['sexo'];
//Saludo para dama o caballero
if ( $sexo == "h" ) {
$saludo = "Estimado caballero";
$ev = 71; // Esperanza de vida hombre
} else {
$ev = 76; // Esperanza de vida mujer
$saludo = "Distinguida dama";
}
//lo ponemos todo en días
$FechaNac = ($year * 365) + ($mes * 30) + $dia;
//los valores actuales
$AA=date("Y"); //el año actual
$MA=date("m"); //el mes actual
$DA=date("d"); //el dia actual
//En dias
$FechaHoy = ($AA * 365) + ($MA * 30) + $DA;
echo "La Fecha de Nacimiemto en dias es " . $FechaNac . " y la fecha de hoy en dias es " . $FechaHoy. "<br />";
//Restamos los dias
$FF = ( $FechaHoy - $FechaNac );
//Lo convertimos a años y lo restamos a la esperanza de vida
$AREST = $ev - ( $FF / 365 );
//Si fuma, restamos 6 años a los años que le restan por vivir
if ( isset($_POST['fuma']) ) {
$AREST = ($AREST - 6);
}
//Le damos formato de dos digitos
$AREST = number_format($AREST, 2);
?>
<html>
<head><title> <?= $titulo ?> </title></head>
<body>
<h2 align="center"><?= $titulo ?></h1>
<p align="center"> <b><?= $saludo ?></b>: le informamos que ha vivido <?= $FF ?> días y que según el INEGI de México, <br />
a usted le restan <?= $AREST ?> años de vida. Aprovéchelos!!!</p>
<?
if ( isset($_POST['fuma']) ) {
echo '<p align="center">Y por favor, deje de fumar.</p>';
}
?>
<p align="center"><a href="formulario.php"><< Regresar</a></p>
</body>
</html>
Guardelo como calcula.php
. Obtendrá algo como esto. En Jedit.org seleccione View->Line numbers:.

El archivo calcula.php
Tenga presente que PHP es sensible a las mayúsculas y minúsculas. Es decir la variable $Edad no es la misma que la variable $edad.
Veamos en detalle. En la línea 2 la variable título guarda el título de la página. En la linea 4 hay un comentario de una sola línea que comienza con una doble diagonal (//), siempre comente sus programas, no sólo para que otras personas puedan entederlos fácilmente sino para que usted mismo, luego de varios meses sin ver el código, no olvide porque hizo lo que hizo (si usted es programador, sabe de lo que estoy hablando).
La doble diagonal, sólo sirve para hacer comentarios de una sola líena. Si desea escribir un comentario de varias líneas deberá colocarlo entre una diagonal asterisco (/*) y una asterisco diagonal (*/).
De la línea 5 a la 8, tomamos los valores de las variables que enviamos desde el formulario usando $_POST[], (si un formulario lo enviamos por el método GET debemos usar $_GET[]). Los valores los recuperamos usando los nombres que colocamos en el tag name de cada campo del formulario. Anteriormente, esto no era necesario, con sólo escribir la variable en algún lugar del script, PHP le asignaba su valor sin necesidad de tomarla
con $_GET y $_POST. Esto era así porque la opción de variables globales estaba elegida por omisión al instalar PHP. Sin embargo, desde la versión 4.3.1 de PHP, se decidió deshabilitarla por motivos de seguridad. Esto ha provocado que muchos ejemplos y código de PHP que hay en internet no funcione, para desesperación de muchos aprendices.
Bien, de la línea 11 al 17 encontramos un bloque if, que asigna valores diferentes las variables $saludo y $ev dependiendo del sexo. Note que es posible escribir un comentario en una misma línea que contenga comandos de PHP siempre que coloquemos la doble diagonal después de los comandos.
En la línea 21 convertimos la información del formulario en días y colocamos el resultado en la variable $FechaNac. Recuerde que (como usted aprendió en el bachillerato) los paréntesis indican el orden de ejecución de una operación, es decir, primero se resolverán las operaciones internas y luego las que están fuera de los paréntesis.
De la línea 24 a la 26 usamos la función date() para conocer el año actual ($AA), el mes actual ($MA) y el día actual ($DA). En la línea 29 también lo convertimos a días. En la línea 31 imprimimos los valores de las variables con el comando echo, en el argot de la programación a esto se le conoce como pintar a la pantalla
. Como usted se habrá dado cuenta, es posible imprimir una variable fuera de los bloques de PHP sin usar echo usando <?= $variable $> , lo cual es muy cómodo.
Ahora sólo falta restar los días de la fecha de nacimiento a los días de la fecha actual para conocer la cantidad de días que han transcurrido desde que nació, lo cual hacemos en la línea 34. Sólo basta convertir esos días en años (dividiéndolos entre 365) y restar el resultado a la esperanza de vida, que, como ya vimos, depende sel sexo que le persona introdujo en el formulario, para hacer un pronóstico de cuantos años le quedan por vivir.

El archivo calcula.php
Además, debemos restar seis años si la persona fuma (líneas 40 a 42). En la líena 40 y 58 usamos la función isset() que determina si una variable está colocada o no. Si se seleccionó la casilla (o checkbox) ¿Usted fuma? del formulario, la variable $_POST['fuma'] estara presente, de otro modo la función isset() enviará false y la condición if ( isset($_POST['fuma']) ) no se cumplirá.
Luego de este (un tanto macabro) ejercicio, podemos ver la integración entre PostgreSQL y PHP.
|