ABC de PHP

¿QUE ES PHP?

El lenguaje PHP es un lenguaje de programación de estilo clásico, es decir, es un lenguaje de programación con variables, sentencias condicionales, ciclos (bucles), funciones…. No es un lenguaje de marcado como podría ser HTML, XML o WML. Está más cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.

Recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina WML.

Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del browser, pero sin embargo para que las páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP.

¿QUE NECESITA PARA QUE FUNCIONE PHP?

PROGRAMACION CON PHP

Ahora que ya tenemos instalado nuestro servidor y el modulo de PHP,  podemos iniciar ha hacer programas PHP, pero ¿Cómo hacerlos?, un ejemplo  nos aclarará las cosas:

<html>
<head>
<title>Ejemplo PHP</title>
</head>
<body>
<?php echo “Hola, este es un ejemplo con PHP”; ?>
</body>
</html>

Podemos ver que no es lo mismo que un script CGI escrito en otro lenguaje de  programación como Perl o C. En vez de escribir un programa con muchos comandos, para  crear una salida en HTML, escribimos el código HTML con cierto código PHP  embebido (introducido) en el mismo, que producirá cierta salida (en nuestro  ejemplo, producir un texto). El código PHP se incluye entre etiquetas  especiales de comienzo y final que nos permitirán entrar y salir del modo PHP.

Pero cuales son estas etiquetas especiales de comienzo y final??, esto nos lleva  a que hay 4 formas de salir de HTML y entrar en modo PHP, las cuales son las  siguientes:

<? echo (“Forma 1″); ?>
<?php echo(“Forma 2″); ?>
<script language=”php”> echo (“Forma 3″); </script>
<% echo(“Etiquetas tipo ASP”); %>

SEPARACION DE INSTRUCCIONES

Las instrucciones se separan igual que en C o Pascal terminando cada  sentencia con un punto y coma.

La etiqueta de cierre ( ?> ) también implica el fin de la sentencia, así lo  siguiente es equivalente:

<?php echo “Esto es una prueba”; ?> 
<?php echo “Esto es una prueba” ?>

COMENTARIOS EN PHP

PHP soporta comentarios tipo ‘C’, ‘C++’ y Shell de Unix. Por ejemplo:

<?php
echo “Prueba”; // Comentario tipo C++ para una línea
?>
 
<?php
/*
Esto es un comentario multilínea
otra línea más de comentario
*/
echo “Esto es aún otra prueba”; ?>
 
<?php
echo “Prueba”; # Comentario tipo shell de Unix
?>

VARIABLES

Antes de ver como se utilizan las variables en PHP veremos una pequeña  introducción a las variables, para los que no conozcan que es una variable.

Una variable consiste en un elemento al cual le damos un nombre y le  atribuimos un determinado tipo de información. Las variables pueden ser  consideradas como la base de la programación.

De este modo podríamos escribir en un lenguaje ficticio:

a=”perro”
b=”muerde”

La variable que nosotros llamamos “a” posee un elemento de información de  tipo texto que es “perro”. Asimismo, la variable “b” contiene el valor “muerde”.

Podríamos definir una tercera variable que fuese la suma de estas dos:

c=a+b

Si introdujésemos una petición de impresión de esta variable en nuestro  lenguaje ficticio:

imprimir(c)

El resultado podría ser:

perro muerde

Podríamos de la misma forma trabajar con variables que contuviesen números  y construir nuestro programa:

a=3
b=4
c=a+b
imprimir(c)

El resultado de nuestro programa sería:

7

En PHP las variables se representan como un signo de pesos seguido por el  nombre de la variable. El nombre de la variable es sensible a minúsculas y  mayúsculas.

$var = “Santana”;
$Var = “Pedro”;
echo “$var, $Var”;
// produce la salida “Santana, Pedro”

VARIABLES VARIABLES

A veces es conveniente tener nombres de variables variables. Dicho de otro  modo, son nombres de variables que se pueden establecer y usar  dinámicamente. Una variable normal se establece con una sentencia como:

$a = “Hola”;

Una variable variable toma el valor de una variable y lo trata como el nombre  de una variable. En el ejemplo anterior, Hola, se puede usar como el nombre  de una variable utilizando dos signos de peso. p.ej.

$$a = “mundo”;

Probemos las siguientes sentencias:

echo “$a ${$a}”;
echo “$a $Hola”;

Los dos no regresarán “Hola mundo

TIPOS DE DATOS

ENTEROS

Los enteros se pueden especificar usando una de las siguientes sintaxis:
$a = 1234; # número decimal
$a = -123; # un número negativo
$a = 0123; # número octal (equivalente al 83 decimal)
$a = 0x12; # número hexadecimal (equivalente al 18 decimal)

NUMEROS ENTEROS FLOTANTES

Los números en punto flotante (“double”) se pueden especificar utilizando cualquiera de las siguientes sintaxis:

$a = 1.234;
$a = 1.2e3;

CADENAS

El único operador de cadenas que existen es el de concatenación, el punto. Pero no se preocupen, PHP dispone de toda una gama de funciones que nos  permitirán trabajar cómodamente con las cadenas.

$a = “Hola”;
$b = $a . “Mundo”; // Ahora $b contiene “Hola Mundo”

En este punto hay que hacer una distinción, la interpretación que hace PHP de  las  simples y dobles comillas. En el segundo caso PHP interpretará el  contenido de la cadena.

$a = “Mundo”;
echo = ‘Hola $a’; //Esto escribirá “Hola $a”

echo = “Hola $a”; //Esto escribirá “Hola Mundo”

Si la cadena está encerrada entre dobles comillas (“), las variables que estén  dentro de la cadena serán expandidas (sujetas a ciertas limitaciones de  interpretación). Como en C y en Perl, el carácter de barra invertida (“\”) se  puede usar para especificar caracteres especiales:

CARACTERES PROTEGIDOS

\n Nueva línea
\r Retorno de carro
\t Tabulación horizontal
\\ Barra invertida
\$ Signo del dólar
\” Comillas dobles
\[0-7]{1,3} La secuencia de caracteres que coincida con la expresión regular es un carácter en notación octal
\x[0-9A-Fa-f]{1,2} La secuencia de caracteres que coincida con la expresión regular es un carácter en notación hexadecimal

OPERADORES DE COMPARACION

$a < $b $a menor que $b
$a > $b $a mayor que $b
$a <= $b $a menor o igual que $b
$a >= $b $a mayor o igual que $b
$a == $b $a igual que $b
$a != $b $a distinto que $b

OPERADORES LOGICOS

$a AND $b Verdadero si ambos son verdadero
$a && $b Verdadero si ambos son verdadero
$a OR $b Verdadero si alguno de los dos es verdadero
$a !! $b Verdadero si alguno de los dos es verdadero
$a XOR $b Verdadero si sólo uno de los dos es verdadero
!$a Verdadero si $a es falso

OPERADORES DE ASIGNACIÓN

$a = $b Asigna a $a el contenido de $b
$a += $b Le suma a $b a $a
$a -= $b Le resta a $b a $a
$a *= $b Multiplica $a por $b y lo asigna a $a
$a /= $b Divide $a por $b y lo asigna a $a
$a .= $b Añade la cadena $b a la cadena $a

Para demostrar el uso de algunos operadores mostraré algunos ejemplos en PHP:  El siguiente programa calcula el salario de un trabajador con un impuesto:

<html>
<body>
<?php
$SalarioTrabajador = 3500;
$Impuesto = 20; // Porcentaje
$SueldoReal = $SalarioTrabajador – (($SalarioTrabajador /100) * $Impuesto);
echo “Sueldo del trabajador sin impuesto: $SalarioTrabajador<BR>”;
echo “Con el impuesto :$SueldoReal”;
?>
</body >
</html>

Programa en PHP que calcula el área de un triangulo cuya formula es a=(b*h)/2

<?php
$Base=15;
$Altura=12;
$Area = ($Base * $Altura)/2;
printf (“El area del triangulo es: $Area”);
?>

Programa que dados 2 números calcule la suma, resta, multiplicación, división, y modulo.

<?php
$Num1=8;
$Num2=5;
printf(“La suma de $Num1 y $Num2 es: <b>%d</b><br>”, $Num1 + $Num2 );
printf(“La resta de $Num1 y $Num2 es: <b>%d</b><br>”, $Num1 – $Num2 );
printf(“La multiplicación de $Num1 y $Num2 : <b>%d</b><br>”, $Num1 * $Num2 );
printf(“La division de $Num1 y $Num2: <b>%0.2f</b><br>”, $Num1 / $Num2 );
printf(“El modulo de $Num1 y $Num2 es <b>%0.1f</b><br>”, $Num1 % $Num2 );
?>

CONSTANTES

PHP define varias constantes y proporciona un mecanismo para definir más en  tiempo de ejecución. Las constantes son como las variables, salvo por las dos  circunstancias de que las constantes deben ser definidas usando la función  define(), y que  no pueden ser redefinidas más tarde con otro valor.

Las constantes predefinidas (siempre disponibles) son:

__FILE__  El nombre del archivo de comandos que está siendo interpretado  actualmente. Si se usa dentro de un archivo que ha sido incluido o requerido,  entonces se da el nombre del archivo incluido, y no el nombre del archivo  padre.

__LINE__  El número de línea dentro del archivo que está siendo interpretado en la  actualidad. Si se usa dentro de un archivo incluido o requerido, entonces se  da la posición dentro del archivo incluido.

PHP_VERSION  La cadena que representa la versión del analizador de PHP en uso en la  actualidad.

PHP_OS  El nombre del sistema operativo en el cuál se ejecuta el analizador PHP.

TRUE  Valor verdadero.

FALSE  Valor falso.

E_ERROR  Denota un error distinto de un error de interpretación del cual no es posible  recuperarse.

E_WARNING  Denota una condición donde PHP reconoce que hay algo erróneo, pero  continuará de todas formas; pueden ser capturados por el propio archivo de  comandos.

E_PARSE  El intérprete encontró sintaxis inválida en el archivo de comandos. La  recuperación no es posible.

E_NOTICE  Ocurrió algo que pudo ser o no un error. La ejecución continúa. Los  ejemplos incluyen usar una cadena sin comillas como un índice “hash”, o  acceder a una variable que no ha sido inicializada.

Las constantes E_* se usan típicamente con la función error_reporting()  para  configurar el nivel de informes de error.

Se pueden definir constantes adicionales usando la función define().

Nótese que son constantes, con una constante sólo se pueden representar datos  escalares válidos.

Veremos un ejemplo del uso de estas constantes:

<?php
function report_error($archivo, $linea, $mensaje) {
echo “Un error ocurrió en $archivo en la línea $linea: $mensaje.”;
}
report_error(__FILE__,__LINE__, “Algo esta mal!”);
?>

Ahora veremos como definir nuestras propias constantes:

<?php
define(“CONSTANTE”, “Hola mundo.”);
echo CONSTANTE; // muestra “Hola mundo.”
?>

SENTENCIAS DE CONTROL

Las sentencias de control permiten ejecutar bloque de códigos dependiendo de  unas  condiciones. Para PHP el 0 es equivalente a Falso y cualquier otro número es  Verdadero.

if…else  La sentencia if…else permite ejecutar un bloque de instrucciones si la  condición es  Verdadera y otro bloque de instrucciones si ésta es Falsa. Es importante tener  en cuenta que la condición que evaluemos ha de estar encerrada entre paréntesis (esto es aplicable a todas las sentencias de control).

if (condición) {
Este bloque se ejecuta si la condición es VERDADERA
} else {
Este boque se ejecuta si la condición es FALSA
}

Existe una forma sencilla de usar la sentencia IF cuando no tenemos que usar el else y solo tenemos que ejecutar una línea de código.

if ($a > 4) echo “$a es mayor que 4”;

Ahora realizaremos un ejemplo con más con IF el cual consistirá en un  pequeño juego de adivinanzas el cual necesitará de dos archivos adivina.htm y  adivina.php, en este ejemplo se utilizará un formulario, lo cual aún no hemos  visto, se usa solo para muestra, por el momento no es muy importante conocer  esa teoría sino un poco más adelante.

adivina.htm

<HTML>
<BODY>
<FORM METHOD=GET ACTION=”adivina.php“>
En que numero del 1 al 10 estoy pensando?
<INPUT NAME=”adivina” TYPE=”Text”>
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
adivina.php
<HTML>
<HEAD></HEAD>
<BODY>
<?php
srand((double)microtime()*1000000);
$Numero = rand(1,10);
if ($adivina > $Numero) {
echo “Fue muy grande”; echo “<BR>Yo pensé el número $Numero. Lo siento no “;
}
if ($adivina < $Numero) {
echo “Fue muy pequeño”; echo “<BR>Yo pensé el número $Numero. Lo siento no “;
}
?>
GANASTE
</BODY>
</HTML>

if…elseif…else

La sentencia IF…ELSEIF…ELSE permite ejecutar varias condiciones en cascada. Para este caso veremos un ejemplo, en el que utilizaremos los operadores lógicos.

<?php
if ($nombre == “”){
echo “Tú no tienes nombre”;
} elseif (($nombre==”eva”) OR ($nombre==”Eva”)) {
echo “
echo “Tu nombre es EVA”;
} else {
echo “Tu nombre es ” . $nombre;
}

switch…case…default

Una alternativa a if…elseif…else, es la sentencia switch, la cual evalúa y compara cada expresión de la sentencia case con la expresión que evaluamos, si llegamos al final de la lista de case y encuentra una condición Verdadera , ejecuta el código de bloque que haya en default. Si encontramos una condición verdadera debemos ejecutar un break para que la sentencia switch no siga buscando en la lista de case. Veamos un ejemplo:

<?php
switch ($dia) {
case “Lunes”:
echo “Hoy es Lunes”;
break;
case “Martes”:
echo “Hoy es Martes”;
break;
case “Miercoles”:
echo “Hoy es Miercoles”;
break;
case “Jueves”:
echo “Hoy es Jueves”;
break;
case “Viernes”:
echo “Hoy es Viernes”;
break;
case “Sábado”:
echo “Hoy es Sábado”;
break;
case “Domingo”:
echo “Hoy es Domingo”;
break;
default:
echo “Esa cadena no corresponde a ningún día de la
semana”;
}
?>

while

La sentencia while ejecuta un bloque de código mientras se cumpla una determinada condición.

<?php
$num = 1;
while ($num < 5) {
echo $num;
$num++
}
?>

Podemos romper un ciclo while utilizando la sentencia break.

<?php
$num = 1;
while ($num < 5) {
echo $num;
if ($num == 3){
echo “Aquí nos salimos \n”;
break
}
$num++
}
?>

do…while

Esta sentencia es similar a while, salvo que con esta sentencia primero ejecutamos el bloque de código y después se evalúa la condición, por lo que el bloque de código se ejecuta siempre al menos una vez.

<?php
$num = 1;
do {
echo $num;
if ($num == 3){
echo “Aquí nos salimos \n”;
break
}
$num++
} while ($num < 5);
?>

for 

El ciclo for no es estrictamente necesario, cualquier ciclo for puede ser  sustituido  fácilmente por otro while. Sin embargo, el ciclo for resulta muy útil cuando  debemos  ejecutar un bloque de código a condición de que una variable se encuentre  entre un valor  mínimo y otro máximo. El ciclo for también se puede romper mediante la  sentencia break.

<?php
for ($num = 1; Snum <=5; $num++){
echo $num;
if ($num == 3){
echo “Aquí nos salimos \n”;
break
}
}
?>

A continuación muestro las 4 formas en que se puede usar el ciclo for.

/* ejemplo 1 */
for ($i = 1; $i <= 10; $i++) {
print $i;
}
/* ejemplo 2 */
for ($i = 1;;$i++) {
if ($i > 10) {
break;
}
}
print $i;
}
/* ejemplo 3 */
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
print $i;
$i++;
}
/* ejemplo 4 */
for ($i = 1; $i <= 10; print $i, $i++) ;

Hay que realizar los siguientes programas con ciclos.

Imprima los números del 1 al 100

for ($i = 1; $i <= 100; print $i.”<br>”, $i++) ;

Imprima los números pares del 1 al 100

for ($i = 2; $i <= 100; print $i.”<br>”, $i=$i+2) ;

Un programa que le des un número y obtenga su tabla de multiplicar (tablas.php)

tablas.php

<?php
$numero=4;
for ($i=1; $i<=10; $i++)
{
echo $i.” x “.$numero.” = “.$i*$numero.”<br>”;
}
?>

VECTORES (TABLAS)

Las tablas (o array en inglés), son muy importantes en PHP, ya que  generalmente,  las funciones que devuelven varios valores, como las funciones ligadas a las  bases de  datos, lo hacen en forma de tabla.  En PHP disponemos de dos tipos de tablas. El primero sería el clásico,  utilizando  índices:

<?php
$ciudad[] = “París”;
$ciudad[] = “México”;
$ciudad[] = “Roma”;
$ciudad[] = “Sevilla”;
$ciudad[] = “Londres”;
print (“yo vivo en ” . $ciudad[1] . “<BR>\n”);
?>

Esta es una forma de asignar elementos a una tabla, pero una forma más  formal es  utilizando la función array

<?php
$ciudad = array(“París”, “Roma”, “Sevilla”, “Londres”);
//contamos el número de elementos de la tabla
$numelentos = count($ciudad);
//imprimimos todos los elementos de la tabla
for ($i=0; $i < $numelentos; $i++)
{
print (“La ciudad $i es $ciudad[$i] <BR>\n”);
}
?>

Sino se especifica, el primer índice es el cero, pero podemos utilizar el  operador =>  para especificar el índice inicial.

$ciudad = array(1=>”París”, “Roma”, “Sevilla”, “Londres”);

Un segundo tipo, son las tablas asociativas, en las cuáles a cada elemento se  le  asigna un valor (key) para acceder a él.  Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una  tabla en  al que cada elemento almacena el número de visitas a nuestra web por cada día  de la  semana.  Utilizando el método clásico de índices, cada día de la semana se representaría  por  un entero, 0 para lunes, 1 para martes, etc.

$visitas[0] = 200;
$visitas[1] = 186;

Si usamos las tablas asociativas sería

$visitas[“lunes”] = 200;
$visitas[“martes”] = 186;

o bien,

$visitas = array(“codigo”>$visitas = array(“lunes”=>200;”martes”=>186);

Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los  índices, pero ¿cómo hacerlo en las tablas asociativas?. La manipulación de las  tabas  asociativas se a hace través de funciones que actúan sobre un puntero interno  que indica la  posición. Por defecto, el puntero se sitúa en el primer elemento añadido en la  tabla, hasta  que es movido por una función:

current – devuelve el valor del elemento que indica el puntero

pos – realiza la misma función que current

reset – mueve el puntero al primer elemento de la tabla

end – mueve el puntero al último elemento de la tabla

next – mueve el puntero al elemento siguiente

prev – mueve el puntero al elemento anterior

count – devuelve el número de elementos de una tabla.

Veamos un ejemplo de las funciones anteriores:

<?php
$semana = array(“lunes”, “martes”, “miércoles”, “jueves”,”viernes”, “sábado”, “domingo”);
echo count($semana); //7
//situamos el puntero en el primer elemento
reset($semana);
echo current($semana); //lunes
next($semana);
echo pos($semana); //martes
end($semana)
echo pos($semana); //domingo
prev($semana);
echo current($semana); //sábado
?>

Recorrer una tabla con las funciones anteriores se hace un poco enredoso, para ello se recomienda utilizar la función each().

<?php
$visitas = array(“lunes”=>200, “martes”=>186,”miércoles”=>190, “jueves”=>175);
reset($visitas);
while (list($clave, $valor) = each($visitas))
{
echo “el día $clave ha tenido $valor visitas<BR>”;
}
?>

La función each() devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve falso, y termina el bucle while().

Tablas multidimensionales

Las tablas multidimensionales son simplemente tablas en las cuales cada elemento es a su vez otra tabla.

<?php
$calendario[] = array (1, “enero”, 31);
$calendario[] = array (2, “febrero”, 28);
$calendario[] = array (3, “marzo”, 31);
$calendario[] = array (4, “abril”, 30);
$calendario[] = array (5, “mayo”, 31);
while (list($clave, $valor ) = each($calendario)){
{
$cadena = $valor[1];
$cadena .= ” es el mes número ” . $valor[0];
$cadena .= “y tiene ” . $varlor[2] . ” días<BR>”;
echo $cadena;
}
?>

La función list() es más bien un operador de asignación, lo que hace es asignar valores a unas lista de variables. En este caso los valores son extraídos de una tabla por la función each().

FORMULARIOS

Los Formularios no forman parte de PHP, sino del lenguaje estándar de  Internet, HTML, pero como éstos van a aparecer muchas veces durante el  curso, vamos a dedicar esta algunas líneas a ellos.

Todo formulario comienza con la etiqueta <FORM  ACTION=”lo_que_sea.php” METHOD=”post/get”>. Con ACTION  indicamos el script que va procesar la información que recogemos en el  formulario, mientras que METHOD nos indica si el usuario del formulario va  a enviar datos (post) o recogerlos (get). La etiqueta </FORM>  indica el final del formulario.  A partir de la etiqueta <FORM> vienen los campos de entrada de datos que  pueden  ser:

Botón de comando:

<input type=”submit” value=”enviar” name=”enviar”>

Cuadro de texto:

<input type=”text” name=”nombre” size=”20″ value=”jose”>

Veamos un ejemplo con PHP:

Las siguientes dos páginas tienen el objetivo de preguntar cuál es tu equipo de fútbol favorito y desplegar en otra página el seleccionado (equipo.htm y equipo.php).

equipo.htm

<html>
<title>Equipo Favorito</title>
<body>
<form method=post ACTION=”equipo.php”>
Cual es tu equipo de fútbol favorito ?
<input name=”equipo” type “TEXT”>
<br>
<br>
<input type=submit>
</form>
</body>
</html>
equipo.php
<html>
<body>
Tu equipo favorito es:
<?php Echo “<h1><B>$equipo</B></h1>”; ?>
</body>
</html>

Hay que poner especial atención en el parámetro name de un elemento del  formulario ya que es el mismo nombre con el que se le referenciará en php,  como pudimos ver en el ejemplo anterior el elemento <input name=”equipo”  type “TEXT”> lo manejamos en php como $equipo, así es con todos los  elementos de formularios.

Cuadro de texto con barras de desplazamiento:

<textarea rows=”5″ name=”descripcion” cols=”20″>Es de color rojo</textarea>

Ahora veamos un ejemplo con PHP:

Programa PHP que pide WebSites favoritos y los muestra como salida (sites.htm y sites.php).

sites.htm

<html>
<title>Web Sites Favoritos</title>
<body>
<form method=POST ACTION=”sites.php”>
Mencióname algunos de tus WebSites Favoritos:
<br>
<textarea name=”websites” cols=”50” rows=”5”>
http://
http://
http://
http://
</textarea>
<br>
<br>
<input type=submit>
</form>
</body>
</html>

sites.php

<html>
<body>
Tus webs favoritos son:<br>
<?php Echo “<h3><B>$websites</B></h3>”; ?>
</body>
</html>

Casilla de verificación o checkbox:

<input type=”checkbox” name=”cambiar” value=”ON”>

Ahora veamos un ejemplo con PHP:

Programa que pregunta lo que haces al levantarte y lo despliega como salida (checkboxes.htm y checkboxes.php).

checkboxes.htm

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=POST ACTION=”checkboxes.php”>Qué haces en cuanto te levantas?<br><br>
Lavarme la cara<INPUT NAME=”sel1” TYPE=”Checkbox” VALUE=”Lavarse la Cara”><BR>
Asearse la boca<INPUT NAME=”sel2” TYPE=”Checkbox” VALUE=”Asearse los dientes”><BR>
Desayunar<INPUT NAME=”sel3” TYPE=”Checkbox” VALUE=”Desayunar”><BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

checkboxes.php

<html>
<body>
<?php
if (isset($sel1))
Echo “$sel1 <br>”;
if (isset($sel2))
Echo “$sel2 <br>”;
if (isset($sel3))
Echo “$sel3 <br>”;
?>
</body>
</html>

Botón de radio u opción:

<input type=”radio” value=”azul” checked name=”color”>

Ahora veamos un ejemplo con PHP:

Programa que nos presenta una suma, nosotros tenemos que elegir la respuesta entre tres opciones posibles y la salida nos muestra la opción que elegimos (radio.htm y radio.php).

radio.htm

<HTML>
<BODY>
<FORM METHOD=GET ACTION=”radio.php”>
Cuantos son 2 + 2?
<BR>
<BR>
<INPUT NAME=”Resp” TYPE=”Radio” VALUE=”44”>44
<BR>
<INPUT NAME=”Resp” TYPE=”Radio” VALUE=”22”>22
<BR>
<INPUT NAME=”Resp” TYPE=”Radio” VALUE=”4”>4
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

radio.php

<HTML>
<BODY>
<?php Echo “seleccionaste $Resp”;?>
</BODY>
</HTML>

Menú desplegable:

<select size=”1”><select size=”1″ name=”dia”>
<option selected value=”lunes”>lunes</option>
<option>martes</option>
<option value=”miercoles”>miercoles</option>
</select>

Ahora veamos un ejemplo en PHP:

Programa que pregunta opciones para armar una computadora y despliega las opciones elegidas (lista.htm y lista.php).

lista.htm

<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD=GET ACTION=”lista.php”>
Elije la computadora a comprar
<BR>
<BR>
<SELECT NAME=”compu”>
<OPTION>Pentium</OPTION>
<OPTION>Celeron</OPTION>
<OPTION>K6</OPTION>
<OPTION>MAC</OPTION>
</SELECT>
<BR>
<BR>
Selecciona los dispositivos de la computadora?
<BR>
<BR>
<SELECT NAME=”dispo[]” MULTIPLE>
<OPTION>KIT MULTIMEDIA</OPTION>
<OPTION>QUEMADORA</OPTION>
<OPTION>WEB CAM</OPTION>
<OPTION>MICROFONO</OPTION>
</SELECT>
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>

lista.php

<HTML>
<BODY>
<?php
Echo “Seleccionaste una computadora: <B>$compu</B>
con:<br>”;
Echo “$dispo[0]<br>”;
Echo “$dispo[1]<br>”;
Echo “$dispo[2]<br>”;
Echo “$dispo[3]<br>”;
?>
</BODY>
</HTML>

Campo oculto:

<input type=”hidden” name=”edad” value=”55″>

Este último tipo de campo resulta especialmente útil cuando queremos pasar datos ocultos en un formulario.

Ahora pasemos a ver ejemplos que necesitan más código PHP, como son ciclos y arrays, implementándolos en conjunto con los formularios.

Para el uso del FOR un programita para créditos bancarios (banco.htm y banco.php).

banco.htm

<HTML>
<HEAD></HEAD>
<BODY>
<B>Crédito bancario</B>
<FORM METHOD=POST ACTION=”banco.php“>
<BR>
Cual de estos paquetes te interesa tomar?<BR><BR>
<INPUT NAME=”valor” TYPE=”Radio” VALUE=1000>Nuestro paquete de $1,000 Con el 5.0% interes
<BR>
<INPUT NAME=”valor” TYPE=”Radio” VALUE=5000>Nuestro paquete de $5,000 Con el 6.5% interes
<BR>
<INPUT NAME=”valor” TYPE=”Radio” VALUE=10000>Nuestro paquete de $10,000 Con el 8.0% interes
<BR>
<BR>
Cuanto es lo que deseas pagar al mes ?
<INPUT NAME=pagomes TYPE=Text SIZE=5>
<BR>
<BR>
<INPUT TYPE=SUBMIT VALUE=”Pulse aquí para calcular”>
</FORM>
</BODY>
</HTML>

banco.php

<HTML>
<HEAD></HEAD>
<BODY>
<?php
$Duracion=0;
switch ($valor) {
case 1000:
$Interes = 5;
break;
case 5000:
$Interes = 6.5;
break;
case 10000:
$Interes = 8;
break;
default:
echo “No seleccionaste ningun paquete favor de
presionar el boton back y seleccionar alguno”;
exit;
}
while ($valor > 0)
{
$Duracion = $Duracion + 1;
$Mensualmente = $pagomes – ($valor * $Interes/100);
if ($Mensualmente<=0)
{
echo “Tu necesitas hacer pagos mas grandes!”;
exit;
}
$valor = $valor – $Mensualmente;
}
echo “La duracion es de: $Duracion meses con un
porcentaje de intereses del $Interes.”;
?>
</BODY>
</HTML>

El siguiente programa demuestra cómo se pueden trabajar los array como elementos hash (estados.php y capital.php).

estados.php

<html>
<head>
<title>Estados de México</title>
</head>
<body bgcolor=”#FFFFFF”>
De que estado te gustaría conocer su capital?
<?
$Estados=array(1=>”Colima”,”Jalisco”,”Sinaloa”);
echo “<form method=post action=’capital.php’>”;
echo “<select name=’estado’>”;
for ($counter=1; $counter<4; $counter++)
echo “<option value=$counter>$Estados[$counter]</option>”;
echo “</select><br><br>”;
echo “<input type=submit>”;
echo “</form>”;
?></body>
</html>

capital.php

<html>
<head>
<title>Capitales</title>
</head>
<body bgcolor=”#FFFFFF”>
<?php
$Capital=array(1=>”Colima”,”Guadalajara”,”Culiacan”);
for ($counter=0;$counter<4;$counter++)
{
if ($counter==$estado)
{
echo “la capital del estado elegido es &Capital[$counter]”;
}
}
?>
</body>
</html>

Como podemos observar los dos archivos tienen extensión .php, esto se debe a  que es necesario ejecutar código php en los dos, para poder formar  dinámicamente las dos páginas.  Para tener más material con formularios realizaremos un programa PHP que  contenga varios elementos de formulario juntos:  Desarrollar un programa en PHP que pida el Nombre (textbox), el apellido  (textbox), la edad (textbox), domicilio (text area), seleccione el rango de sueldo  que le gustaría ganar (listbox) y que seleccione como considera así mismo su  desempeño laboral (radio button). El programa no aceptará curriculums que  elijan un sueldo muy bajo, ni un sueldo extremo, ni tampoco si se considera  pésimo (minicu.htm y minicu.php).

minicu.htm

<HTML><HEAD></HEAD><BODY><B>Minicurriculum </B>
<FORM METHOD=POST ACTION=”minicu.php“>
Nombres:
<INPUT NAME=”nombres” TYPE=”Text”>
Apellidos:
<INPUT NAME=”apellidos” TYPE=”Text”>
Edad:
<INPUT NAME=”edad” TYPE=”Text”SIZE=”3″>
<BR>
<BR>
Domicilio:
<TEXTAREA NAME=”Domicilio” ROWS=4 COLS=40>
</TEXTAREA>
<BR>
<BR>
Que salario deseas ganar?
<SELECT NAME=”Salario”>
<OPTION VALUE=0> Menos de $1000</OPTION>
<OPTION VALUE=1000>Entre $1,000 y $3,000</OPTION>
<OPTION VALUE=3000>Entre $3,000 y $5,000</OPTION>
<OPTION VALUE=5000>mas de $5,000</OPTION>
</SELECT>
<BR>
<BR>
Como consideras tu desempeño?<BR><BR>
<INPUT NAME=”Desempe” TYPE=”Radio” VALUE=0>Pesimo
<BR>
<INPUT NAME=”Desempe” TYPE=”Radio” VALUE=5>Regular
<BR>
<INPUT NAME=”Desempe” TYPE=”Radio” VALUE=10>Excelente
<BR>
<BR>
<INPUT TYPE=SUBMIT VALUE=”Presione cuando este listo(a)”>
<INPUT TYPE=RESET VALUE=”Borra todo”>
</FORM>
</BODY>
</HTML>

minicu.php

<HTML>
<BODY>
Sr(a) <?php Echo “$nombres $apellidos “;?>
en base a su edad (<?php Echo “$edad”;?>) y sus aspiraciones <br>
económicas y su auto estimación hemos determinado que:<br>
<?php
echo “Salario deseado: $Salario <br>” ;
echo “Su desempeño elegido: $Desempe <br>”;
if ((($Salario==0) OR ($Salario ==5000)) OR ($Desempe ==0))
{
Echo “Usted no cumple los requisitos para ser parte de nuestra empresa”;
}
else
{
Echo “Usted cumple satisfactoriamente nuestras aspiraciones”;
}
?>
</BODY>
</HTML>

Hasta aquí esta entrada para los principiantes (y algunos no tan principiantes) con el php, espero que les sirva, saludos y mucha suerte.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *