Programacion Web
Programacion Web
Por ejemplo, una estacin de trabajo utilizada como cliente puede ejecutar una
aplicacin de interfaz de usuario que interroga a un servidor central de bases
de datos.
Javascript.
Javascript es un lenguaje de programacin que realiza acciones dentro del
mbito de una pgina web. Su compatibilidad con la mayora de los
navegadores modernos, lo posiciona como el lenguaje de programacin del
lado del cliente ms utilizado. Con Javascript podemos crear efectos especiales
en las pginas y definir interaccin con el usuario. El navegador (browser) del
Por el otro, javascript nos permite ejecutar instrucciones como respuesta a las
acciones del usuario (eventos), con lo que podemos crear pginas interactivas
con programas como calculadoras, agendas, o tablas de clculo.
</script>
</body>
</html>
Applets de Java
Son programas hechos en Java, que se transfieren con las pginas web y que
el navegador ejecuta en el espacio de la pgina. Los applets son ms difciles
de programar que los scripts en Javascript y requerirn conocimientos medios
del lenguaje Java. La principal ventaja de utilizar applets consiste en que son
independientes del navegador, del sistema operativo y multiplataformas.
Cada sistema operativo dispone de una mquina Virtual de Java que puede
interpretar los Byte Codes y transformarlos a sentencias ejecutables en el
sistema en cuestin.
Arquitectura de appletviewer
El
applet
empieza
recibir
llamadas.
Primero
recibe
una
Flash
Flash una tecnologa 100% propietaria, argumenta que los estndares web
deben de ser completamente abiertos.
Adobe asevera que los dispositivos que no tienen soporte para Flash, no
tienen acceso a toda la web, porque ms del 75% del vdeo en Internet est
basado en Flash". Pero lo que no dicen, es que casi todo ese contenido,
tambin est disponible en formatos ms modernos como el H.264.
Flash ofrece poca seguridad a sus usuarios. Dice que es uno de los
principales culpables que las computadoras Mac fallen. Afirma que han tratado
de trabajar conjuntamente con Adobe para corregir los problemas, pero que
estos persisten despus de varios aos. No queremos reducir la confiabilidad y
la seguridad del iPhone, del iPod, o del iPad aadiendo la tecnologa Flash.
Flash se desempea pobremente en los dispositivos porttiles, dado que
consume mucha energa, adems de que tambin, consume demasiados
recursos aunque el hardware sea capaz de reproducir dicho contenido.
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web,
justo antes de que se enve la pgina a travs de Internet al cliente. Las
pginas que se ejecutan en el servidor pueden realizar accesos a bases de
datos, conexiones en red, y otras tareas para crear la pgina final que ver el
cliente.
Ventajas:
Mayor velocidad.
Mayor seguridad.
Desventajas:
Tecnologa propietaria.
JSP
JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las
de ASP.NET, desarrollado para la creacin de aplicaciones web potentes.
Posee un motor de pginas basado en los servlets de Java. Para su
funcionamiento se necesita tener instalado un servidor Tomcat.
Caractersticas:
Los elementos que pueden ser insertados en las pginas JSP son los
siguientes:
Ventajas:
Multiplataforma.
Desventajas:
Complejidad de aprendizaje.
PERL
Perl (Practical Extraction and Report Language) es un lenguaje de
programacin desarrollado por Larry Wall (lwall at netlabs.com) inspirado en
otras herramientas de UNIX como son: sed, grep, awk, c-shell, para la
administracin de tareas propias de sistemas UNIX. No establece ninguna
filosofa de programacin concreta. No se puede decir que sea orientado a
objetos, modular o estructurado aunque soporta directamente todos estos
paradigmas; su punto fuerte son las labores de procesamiento de textos y
archivos. Lenguaje de programacin basado en scripts portable a casi cualquier
plataforma. Es muy utilizado para escribir CGIs. Uno de sus elementos ms
potentes son las expresiones regulares, que a partir de su versin en Perl han
sido adoptadas por otros lenguajes y plataformas como .NET o Javascript.
Ventajas
Perl es gratuito. Mucho ms que eso, es Software Libre. Esto quiere decir
que el cdigo fuente est disponible para que cualquiera lo pueda ver o
modificar, y lo que es ms importante, siempre lo estar. Aunque nunca
pretendas cambiar el cdigo, es importante disponer de la posibilidad de
hacerlo, ya que siempre se podr contratar a una tercera persona para que lo
modifique en el caso de que haya un error, y debera ser posible solucionarlo.
Desventajas
PHP
PHP es el acrnimo de Hipertext Preprocesor. Es un lenguaje de programacin
del lado del servidor gratuito e independiente de plataforma, rpido, con una
gran librera de funciones y mucha documentacin. Fue creado originalmente
en 1994 por Rasmus Lerdorf, pero como PHP est desarrollado en poltica de
cdigo abierto, a lo largo de su historia ha tenido muchas contribuciones de
otros desarrolladores.
Ventajas:
Es libre, por lo que se presenta como una alternativa de fcil acceso para
todos.
Desventajas:
Dificulta la modularizacin.
Seguridad:
PHP es un poderoso lenguaje e intrprete, ya sea incluido como parte de un
servidor web en forma de mdulo o ejecutado como un binario CGI separado,
es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red
en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada
en un servidor web sea insegura por naturaleza.
Un editor de texto.
Un compilador.
Un intrprete.
Herramientas de automatizacin.
Un depurador.
Existen muchos entornos de desarrollo para PHP en software libre tales como:
Zend Studio, Open Komodo Project, Eclipse + phpEclipse, entre otros.
Dreamweaver de Adobe
Es en una potente y flexible herramienta de desarrollo que inclute numerosas
herramientas para facilitarnos el desarrollo de aplicaciones web.
Dreamweaver permite trabajar con los siguientes modelos de servidor:
ASP JavaScript
ASP VBScript
ASP.NET C#
ASP.NET VB
COLDFUSION
JSP
PHP MySQL
Jomla!
Joomla! es un Sistema de Gestin de Contenidos (CMS) premiado
mundialmente, que le ayuda a construir sitios web y otras aplicaciones online
potentes. Lo mejor de todo, es que Joomla es una solucin de cdigo abierto y
est disponible libremente para cualquiera que desee utilizarlo.
Joomla! se utiliza en todo el mundo para generar desde una simple pgina
web personal hasta complejas aplicaciones web corporativas. Entre los
diferentes usos que la gente da a Joomla! estn:
Comercio electrnico
Aplicaciones gubernamentales
Portales de comunidades
Revistas y peridicos
WordPress
En la generacin
errores
todos
lo
niveles:
contenido,
funcional,
Una de las tareas colaterales que forman parte del proceso es el Control y
Garanta de la Calidad (CGC). Todas las actividades CGC de la ingeniera
software tradicional como son: establecimiento y supervisin de estndares,
revisiones tcnicas formales, anlisis, seguimiento y registro de informes, etc,
son igualmente aplicables a la Ingeniera Web. Sin embargo, en la Web toman
especial relevancia para valorar la calidad aspectos como:
Usabilidad
Funcionabilidad
Fiabilidad
Seguridad
Eficiencia
Mantenibilidad
Control de la Configuracin
Establecer mecanismos adecuados de control de la configuracin para la
Ingeniera Web es uno de los mayores desafos a los que esta nueva disciplina
se enfrenta. La Web tiene caractersticas nicas que demandan estrategias y
Qu marca la diferencia?
A modo de breve resumen enumeramos las siguientes diferencias:
Cambio continuo:
Por qu es necesaria?
La Web evoluciona y crece sin diseo alguno. Prcticas tan pobres de calidad
pueden introducir defectos que dejen al efecto 2000 como un juego de nios.
Es deber de todos proporcionar cimientos firmes a una tecnologa que
mgicamente nos permite acceder a cualquier hora a cualquier punto del
planeta para obtener bienes tan valiosos como son los servicios y
la informacin.
Conclusiones
La aplicacin de principios de ingeniera pueden evitar el caos potencial al que
nos enfrentamos, y poner bajo control el desarrollo de las aplicaciones Web,
minimizando riesgos y mejorando el mantenimiento y calidad.
El objetivo del mismo es conocer como proteger la aplicacin contra los fallos
ms comunes (SQL Injection, XSS, Command Execution, File Inclusion ).
Insecure Communications
Cada uno de estos tipos tiene por supuesto sus ventajas y sus inconvenientes.
As, por ejemplo, un lenguaje de lado cliente es totalmente independiente del
servidor, lo cual permite que la pgina pueda ser albergada en cualquier sitio
sin necesidad de pagar ms ya que, por regla general, los servidores que
aceptan pginas con scripts de lado servidor son en su mayora de pago o sus
prestaciones son muy limitadas.
Cada herramienta tiene un fin especfico y debera ser usado solo con un fin
determinado, Sin embargo esto no se cumple en la mayora de las tareas del
quehacer humano y mucho menos en las aplicaciones web. Cuando pensemos
en las mejores herramientas para el desarrollo web es necesario pensar en
donde estar alojado nuestro sitio (hosting).
El hosting o alojamiento web es un sistema esencial para el funcionamiento de
los sitios en Internet y es el lugar donde fsicamente reside nuestra informacin.
Si tenemos recursos ilimitados para tener nuestro propio sitio entonces
tendriamos que hacer una gran investigacin para seleccionar las herramientas
ms sofisticadas. Sin embargo para la mayora de las aplicaciones debemos
pagar porque nuestra informacin sea colocada en cierto servidor.
Sin el afan de romperse las camisas discutiendo este punto, las herramientas
que usaremos para desarrollar el sitio, dependen de las preferencias, del
acceso a las herramientas ("licencias") y la disponibilidad . En resumen cada
quien habla como le va en la feria. Si somos expertos en un X lenguaje y
el sistema Operativo de nuestro host no lo soporta, podremos tener las
herramientas ms sofisticadas pero no servirn de nada.
Las fases de un desarrollo web, as como los lenguajes de programacin
usados, son muy extensas y variadas, y por ello necesitamos herramientas
especficas para cada una de ellas. Conoceremos a continuacin las
principales herramientas existentes para poder desarrollar fcilmente
unproyecto web.
En el desarrollo web tenemos unas herramientas para el diseo, otras para la
maquetacin, otras para la programacin, y para la depuracin. Todas
las herramientas que usemos son muy importantes, desde el sistema operativo
hasta el comando ms insignificante, y por ello debemos elegir la ms
adecuada a nuestras necesidades y capacidades.
Sistema Operativo
3.3. Variables
Para ejemplificar como se estructura un programa en PHP, checaremos el
siguiente cdigo para probar nuestro primer programa. El cual, muestra el
himno del Tecnolgico de Veracruz.
Los programas en PHP inician con "<?php" y terminan con el tag "?>". En el
cdigo la instruccin echo imprime en pantalla la cadena encerrada entre pares
de '"'. Note que entre las lneas encontramos el tag html "<br />" lo cual regresa
un retorno de lnea.
Adems observe que cada lnea termina con un ";".
?
1
2
3
4
5
6
7
8
9
<?php
echo "Himno del Instituto Tecnolgico de Veracruz";
echo"Letra: Francisco Rivera vila. ";
echo"Msica: Agustn Lara y Aguirre";
echo "Con ilusin, prestancia y con valor,";
echo "con juvenil deseo de vencer,";
echo "a mi Instituto voy con sin igual fervor,";
echo "en busca de la luz y del saber.";
?>
Descargar
Ejecutar
Variables.
Las variables en PHP no necesitan, a diferencia de otros lenguajes de
programacin ser declaradas especficamente dado que cuando a una variable
se le asigna un valor esta se inicializa en forma automtica determinando la
cantidad de memoria necesaria para dicha variable.
Los nombres de las variables van precedidas del signo "$". Los nombres de las
variables son sensibles al uso de las maysculas y minsculas. De tal forma
que la sintaxis correcta es:
$nombreVariable = valor;
?
1
2
3
4
Slo puede estar formada por letras y nmeros y los smbolos ($ dlar
y _ guin bajo).
El primer carcter del nombre del identificador o varible debe ser
estrictamente el signo de dlar.
?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$foto = "<img src='../img/artistas/gabrielaVergara.jpg' />";
$miNovia = 'Gabriela Vergara';
$nacio = 'Caracas, Venezuela';
$cumple = '29 de Mayo';
$signo = 'Gminis';
echo $foto;
echo 'Mi novia: '.$miNovia."<br />";
echo 'Nacio: '.$nacio."<br />";
echo 'Cumpleaos: '.$cumple."<br />";
echo 'Signo: '.$signo."<br />";
?>
Descargar
Ejecutar
Tipos de datos
Tipo
Entero
$edad = 45;
Real
$pi
3.1415;
Octal
$a = 0123
Hexadecimal
$b = 0x12
Nmero hexadecimal
decimal).
Alfanumricas $c = "a"
Variable alfanumrica
Alfanumricas $c = 'a'
Variable alfanumrica
(equivalente
al
Ejemplos:
Expresin
Resultado
$algo = 1 + 5;
$algo = 1 + "5";
7!!!
11!!!
18
Expresin
Resultado
11.4!!!!!
Descargar
Ejecutar
Secuencia
Significado
\n
Nueva lnea
\r
Retorno de carro
\t
Tabulacin horizontal
\\
Barra invertida
\$
Signo de dlar
\"
Comillas dobles
\[0-7]{1,3}
\x[0-9A-Fa-f]
{1,2}
?
1
2
3
4
5
6
7
8
<?php
//esto es una cadena
$cadena = '25';
//esto es un entero
$entero = 15;
echo "$cadena + $entero = ";
echo $cadena + $entero
?>
Descargar
Ejecutar
Este script dar como resultado "40". La variable cadena ha sido asimilada en
entero (aunque su tipo sigue siendo cadena) para poder realizar la operacin
matemtica. Del mismo modo, podemos operar entre variables tipo entero y
real.
PHP se encarga durante la ejecucin de interpretar el tipo de variable
necesario para el buen funcionamiento del programa. Esto podra parecer una
ventaja
pero
en
la
prctica
es
un
dolor
de
cabeza.
Sin embargo, en contraste, hay que tener cuidado en no cambiar maysculas
por minsculas ya que, en este sentido, PHP es sensible. Conviene por lo tanto
trabajar ya sea siempre en maysculas o siempre en minsculas para evitar
este conflicto regularmente difcil de identificar.
Variables predefinidas
PHP dispone de una gran cantidad de variables que ya estn definidas, y que
tenemos a disposicin para usarlas dentro de nuestros script. Para ver todas
las variables que tenemos disponibles en nuestro servidor y versin de PHP, es
necesario hacer un llamado a la funcin predefinida phpinfo(). Por ejemplo:
?
1
2
3
<?php
echo phpinfo();
?>
Ejecutar
Descripcin
Nombre del subdirectorio donde se ejecuta
el script
$HTTP_REFERER
http://localhost/
$HTTP_USER_AGENT
$PHP_SELF
$QUERY_STRING
$REMOTE_ADDR
IP del cliente
$REQUEST_METHOD
$SERVER_FILENAME
$SERVER_PORT
$SERVER_PROTOCOL
$SERVER_SOFTWARE
$_SERVER
donde
Web
se
que
est
est
?
1
2
3
4
5
6
7
8
9
<?php
echo
echo
echo
echo
echo
echo
echo
?>
"Idioma:
".$HTTP_ACCEPT_LANGUAGE;
"Navegador:
".$HTTP_USER_AGENT";
"Cabecera:
".$HTTP_CONNECTION;
"IP cliente:
".$REMOTE_ADDR.";
"Nombre del archivo:".$PHP_SELF;
"Versin Apache:
".$SERVER_SOFTWARE;
"Puerto:
".$SERVER_PORT;
Descargar
Ejecutar
<?php
function getIpReal() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else { $ip = $_SERVER['REMOTE_ADDR']; }
return $ip;
}
echo 'ip = '.getIpReal();
?>
Descargar
Ejecutar
Expansin de variables
?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$estado = 'VERACRUZ DE IGNACIO DE LA LLAVE';
$escudo = '../img/escudoVeracruz.jpg';
$capital = 'Xalapa';
echo "<img src='$escudo' border='0' />";
echo "El nombre oficial de nuestro Estado es $estado, "
echo "su origen se";
echo ' enmarca en una serie de acontecimientos histricos ';
echo 'que marcaron un hito en la vida poltica, econmica y ';
echo 'social ';
echo "de nuestro pas. Su capital es $capital.";
?>
Descargar
Ejecutar
Variables de variables
<?php
$saludo = 'Programmation en PHP';
$mensaje = 'saludo';
echo $$mensaje."<br />";
$saludo = 'Programming in PHP';
$mensaje = 'saludo';
echo $$mensaje."<br />";
$saludo = 'Programacion en PHP';
$mensaje = 'saludo';
echo $$mensaje."<br />";
?>
Descargar
Ejecutar
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$estado1 = 'Aguascalientes';
$estado2 = 'Baja California';
$estado3 = 'Baja California Sur';
$estado4 = 'Campeche';
. . .
$estado30 = 'Veracruz';
$estado31 = 'Yucatan';
$estado32 = 'Zacatecas';
$cadena = '';
for($i = 1;$i <= 32; $i++) {
$estado = 'estados/'.${'estado'.$i}.'.jpg';
$cadena .= "<img src='$estado' />";
$cadena .= ${'estado'.$i};
}
echo $cadena;
?>
Descargar
Ejecutar
Constantes
Sintaxis
Se definen y acceden sin tener en cuenta las reglas de alcance del mbito.
<?php
define('YARDA', 0.9144 );
define('RECORD', 5048 );
$cadena = 'El record de Dan Marino en Yardas ';
$cadena .= 'por pase en una temporada es de ';
$cadena .= RECORD. 'Yardas';
$record = RECORD * YARDA;
$cadena .= "Es decir $record metros";
8
9
10
echo $cadena;
?>
Descargar
Ejecutar
Constantes predifinicas
<?
$cadena = 'Ruta: '.__FILE__.'<br />';
$cadena .= 'Esta es la lnea: ';
$cadena .= __LINE__.' del archivo<br />';
$cadena .= 'Versin PHP: '.PHP_VERSION;
$cadena .= 'Sistema operativo: '.PHP_OS;
echo $cadena;
?>
Descargar
Ejecutar
Descripcin
Sintaxis
isset
unset
empty
gettype
Funcin
Descripcin
Sintaxis
variable
settype
lowercase
uppercase
is_int
is_float
3.4. Operadores
Operador de asignacin
?
1
<?php
$calle = 'Veracruz';
$mi_numero = 319;
echo $mi_numero;
?>
Descargar
Ejecutar
?
<?php
$numeros = 'uno, dos, tres';
$numeros .= ', <span class="e2507h48" id="e2507h48_2">cuatro</span>, cinco, seis';
echo $numeros;
?>
Descargar
Ejecutar
Operador de concatenacin
?
1
<?php
$nombre = 'Jorge';
$apellido = 'Perez';
Descargar
Ejecutar
Operadores aritmticos
Operador
Ejemplo
Resultado
Negacin
-$var1
-10
Suma
$var1 + $var2
15
Operador
Ejemplo
Resultado
Resta
$var1 - $var2
Multiplicacin
$var1 * $var2
50
Divisin
$var1 / $var2
Mdulo
$var1 % $var2
?php
$enviar = $_POST['enviar'];
if( isset($enviar) and $_SERVER['REQUEST_METHOD'] == 'POST' ) {
$a = $_POST['a'];
$b = $_POST['b'];
if( $a*$b !== 0 ) {
$titulo
= '<h2>Operadores Aritmticos</h2>';
$tabla
= '<table><thead>';
$tabla
.= '<tr><td>Ejemplo</td><td>Resultado</td></tr>';
$tabla
.= '</thead>';
$finlinea = '</div></td></tr>';
$tabla
.= "<tr><td>a</td><td>$a</td></tr>";
$tabla
.= "<tr><td>b</td><td>$b</td></tr>";
$tabla
$tabla
$tabla
$tabla
$tabla
$tabla
.= '</table>';
echo $tabla';
} else { echo "<p class='centrado'>Divisin por cero</p>";}
} else { echo "<p
>
Descargar
Ejecutar
Ejemplo
Descripcin
+=
$variable += 10
-=
$variable -= 10
*=
$variable *= 10
/=
$variable /= 10
%=
$variable %= 10
.=
$variable
"concatenar"
.= Concatena
las
"concatenar"
cadenas
$variable
ST['enviar'];
T['tabla'];
h2 align='center'><strong>";
."</strong></h2>";
"<h2 align='center'><strong>Tabla de multiplicar usando +=";
= " </strong></h2></td></p>";
ulo;
0;
>";
<td>".$i."</td><td>*</td><td>".$tabla."</td>";
+= $tabla;
=</td><td>".$resultado."</td></tr>";
e>";
['enviar']);
['tabla']);
='centrado'><a href='0304Operadores05.html'>";
Descargar
Ejecutar
Operador
Ejemplo
Efecto
Pre-incremento
++$a
Post-incremento
$a++
Pre-decremento
--$a
Post-decremento
$a--
?php
$enviar = $_POST['enviar'];
$a
= $_POST['a'];
$b
= $_POST['b'];
echo $titulo."</h2>";
$tabla = "<table>";
$tabla .= "<tr><td>Ejemplo</td><td>Resultado</td></tr>";
$tabla .= "<tr><td>a</td><td>$a</td></tr>";
$tabla .= "<tr><td>b</td><td>$b</td></tr>";
$tabla .= "<tr><td>a++</td><td>".($a++)."</td></tr>";
$tabla .= "<tr><td>++a</td><td>".(++$a)."</td></tr>";
$tabla .= "<tr><td>b--</td><td>".($b--)."</td></tr>";
$tabla .= "<tr><td>--b</td><td>".(--$b)."</td></tr>";
$tabla .= "</table>";
echo "$tabla";
unset($_POST['enviar']);
unset($_POST['a']);
unset($_POST['b']);
} else {echo "<p class='centrado'>Falta informacin asi no puedes ejecutar</p>";}
echo "<p class='centrado'><a href='0304Operadores06.html'>";
echo "<img src='../../images/icon-home.gif' /><br />Regresar</a></p>";
>
Descargar
Ejecutar
Operadores de Comparacin.
Operador
Igualdad
Ejemplo
$a == $b
Cierto si:
$a es igual a $b.
Operador
Identidad
Ejemplo
Cierto si:
$a === $b
$a != $b
$a no es igual a $b.
$a !== $b
Menor que
$a < $b
$a <= $b
Mayor que
$a > $b
$a >= $b
Desigualdad
?php
$enviar = $_POST['enviar'];
$a
= $_POST['a'];
$b
= $_POST['b'];
$c
= $_POST['c'];
>
Descargar
Ejecutar
Operadores Lgicos
evala
cierto,
Operador
&&
Ejemplo
Cierto si:
$a && $b
Ambos son ciertos
and
$a and $b
||
$a || $b
Si uno o ambos es cierto
or
$a or $b
xor
$a xor $b
!$a
Si $a es Falsa
?php
if( isset($enviar) && $_SERVER['REQUEST_METHOD'] == 'POST' && $velocidad >= 119) {
echo mensaje();
if(($velocidad >= 119) && ($velocidad <= 153)){
$categoria = 1;
} elseif(($velocidad >= 154) && ($velocidad <= 177)){
$categoria = 2;
} elseif(($velocidad >= 178) && ($velocidad <= 209)){
$categoria = 3;
} elseif(($velocidad >= 210) && ($velocidad <= 249)){
$categoria = 4;
$fila
.= "<td align='center'>".$categoria."</td>";
$efecto =
damages($categoria);
$fila
.= "<td><small>$efecto</small></td>";
$fila
.= "<td>".$imagen."</td></tr></table>";
echo $fila;
} else {
echo "<p align='center'>Falta informacin as no puedes ejecutar</p>";
}
>
Descargar
Ejecutar
Operador de ejecucin
?
1
<?php
$entorno = `set`;
echo "$entorno";
echo "$entorno";
?>
Precedencia de operadores
Cuando una expresin est formada por ms de un operador del mismo tipo,
PHP la evala de izquierda a derecha, pero cuando creamos expresiones que
utilizan ms de un operador diferente, no siempre evala estas expresiones de
la misma forma.
Asociatividad
Operadores
izquierda
izquierda
or
izquierda
xor
izquierda
and
derecha
izquierda
izquierda
?:
izquierda
||
izquierda
&&
izquierda
izquierda
izquierda
&
no asociativo
== != ===
no asociativo
izquierda
<< >>
izquierda
+-.
izquierda
*/%
derecha
derecha
no asociativo
new
if...else
La sentencia if...else permite ejecutar un bloque de instrucciones si la
condicin es verdadera y otro bloque de instrucciones si sta es falsa. Es
importante tener en cuenta que la condicin que evaluemos ha de estar
encerrada entre parntesis (esto es aplicable a todas la sentencias de control).
?
1
2
3
4
5
if (condicin) {
//Se ejecuta si la condicin es VERDADERA
} else {
//Se ejecuta si la condicin es FALSA
}
'];
_SERVER['REQUEST_METHOD'] == 'POST' ){
) {
s par";
n es impar";
enter'>".$cadena."</div><br />";
'>
nciasControl01.html'>
ages/icon-<span class="e2507h48" id="e2507h48_6">home</span>.gif' /><br />Regresar</a></p>
impar</legend>
'n'>n</label>
ext" name="n" id="n" /></p>
e="submit" name="enviar" id="enviar" value="Enviar" /></p>
Descargar
Ejecutar
isset es una funcin PHP que regresa verdadero si una variable tomo
valor
?php
$enviar = $_POST['enviar'];
if( isset($enviar) && $_SERVER['REQUEST_METHOD'] == 'POST' ) {
echo "<h1>Implementos deportivos de ".$_POST['deporte']."</h1>";
echo "<p class='centrado'><img alt='' src='deportivos/".$_POST['deporte']."01.jpg' />";
echo "<img alt='' src='deportivos/".$_POST['deporte']."02.jpg' /></p>";
unset($enviar);
unset($_POST['deporte']);
?>
<p class='centrado'>
<a href='0305SentenciasControl02.php'>
<img src='../../images/icon-home.gif' />
<br />Regresar</a></p>
<?
} else {
?>
<form id='forma' name='forma' method='post' action='0305SentenciasControl02.php'>
<fieldset>
<legend>Implementos deportivos</legend>
<p><label for='deporte'>Deporte</label>
<?
>
Descargar
Ejecutar
Existe una forma sencilla de usar la sentencia if cuando no tenemos que usar
el else y solo tenenemos que ejecutar una lnea de cdigo.
?
1
2
$a = 6;
if ($a > 4) echo "$a es mayor que 4";
?php>
$a = $_POST['a']; $b = $_POST['b']; $c = $_POST['c'];
$datos = empty($a) or empty($b) or empty($c);
$enviar = $_POST['enviar'];
>
Descargar
Ejecutar
switch...case...default
Una alternativa a if...elseif...else, es la sentencia switch, la cual evala y
compara cada expresin de la sentencia case con la expresin que evaluamos,
si llegamos al final de la lista de case y no encontramos condicin verdadera,
ejecuta el cdigo de bloque que haya en la sentenciadefault.
Observe que la sentencia break evita que la ejecucin del cdigo continue
evaluando
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
function diaSemana(){
$semanaArray = array(
'Mon' => 'Lunes',
'Tue' => 'Martes',
'Wed' => 'Miercoles',
'Thu' => 'Jueves',
'Fri' => 'Viernes',
'Sat' => 'Sbado',
'Sun' => 'Domingo',
);
return $semanaArray[date('D')];
} //diaSemana
switch (diaSemana()) {
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 'Sbado': echo 'Hoy es Sbado'; break;
case 'Domingo': echo 'Hoy es Domingo'; break;
default: echo 'Esa cadena no corresponde a ningn da de la semana';
}
?>
Descargar
Ejecutar
(Linea 32)
switch (true) permitir que siempre se evalue la expresin a cierto o falso
segn sea el caso (Lnea 34)
?php
function damages($i) {
$damage = array();
$damage[1] = 'No dao efectivo a edificios <br/> Daos a remolques y arboles <br/>';
$damage[5] .= '460 mts de la costa<br/>';
return $damage[$i];
}
function mensaje() {
?>
<h1>Escala Saffir Simpson</h1><p>La escala Saffir-Simpson se ha convertido ...</p>
<p>Fue nombrada as por los cientficos que la desarrollaron</p></br>
<div class='centrar'>
<p>Categora 1: de 119 a 153 km/h.</p>
<p>Categora 2: de 154 a 177 km/h.</p>
<p>Categora 3: de 178 a 209 km/h.</p>
<p>Categora 4: de 210 a 249 km/h.</p>
<p>Categora 5: 250 km/h o ms</p>
</div>
<table>
<thead>
<tr>
<th>Velocidad</th>
<th>Categora</th>
<th>Daos</th>
<th>Imagen</th>
</tr>
</thead>
<?
}
$velocidad = mt_rand(119,400);
echo mensaje($velocidad);
switch (true) {
case ($velocidad >= 119) && ($velocidad <= 153): $categoria
case ($velocidad >= 154) && ($velocidad <= 177): $categoria
case ($velocidad >= 178) && ($velocidad <= 209): $categoria
case ($velocidad >= 210) && ($velocidad <= 249): $categoria
case ($velocidad >= 250): $categoria = 5; break;
}
$imagen = "<img src='huracan/damage".$categoria.".jpg' />";
$html = "<tr><td align='center'> $velocidad </td>";
$html .= "<td>".$categoria."</td>";
$efecto = damages($categoria);
=
=
=
=
1;
2;
3;
4;
break;
break;
break;
break;
>
$html .= "<td><small>$efecto</small></td>";
$html .= "<td>".$imagen."</td></tr></table>";
echo $fila;
?>
<br />
<p class='centrado'>
<a href='0305Switch.php'><img alt='' src='../../images/icon-home.gif' >
<br />Regresar</a>
</p>
<?
Descargar
Ejecutar
Ejemplo:
for
Ejemplo:
?
1
2
3
4
5
6
7
8
9
<?php
for ($num = 1; $num <= 5; $num++){
echo $num."<br />";
if ($num == 3){
echo "Aqu nos salimos \n";
break;
}
}
?>
<?php
$tabla = mt_rand( 1, 10);;
$html = '<table class="simple">';
for($i = 1; $i <= 10; $i++) {
$html .= '<tr>';
$r
= $tabla*$i;
$html .= "<td>$tabla</td><td>*</td><td>$i</td>";
$html .= "<td>=</td><td>$r</td>";
$html .= '</tr>';
}
echo $html.'</table>';
?>
Descargar
Ejecutar
while
?php
$enviar = $_POST['enviar'];
if( isset($enviar) && $_SERVER['REQUEST_METHOD'] == 'POST') {
$n = $_POST['n'];
if($n >= 0 && $n <= 1) {
$factorial = 1;
} elseif( $n >= 2 and $n <= 69) {
$factorial = 1;
$i = 2;
while ( $i <= $n ) {
$factorial *= $i++;
}
} else $factorial = "indefinido";
$html = "<p class='centrado'>El factorial de $n es ";
$html .= number_format($factorial, 0, '.',',')."</p><br />";
echo $html;
?>
<p class='centrado'>
<a href='0305While.php'><img alt='' src='../../images/icon-home.gif'></a>
</p>
<?
} else {
?>
<form id='forma' name='forma' method='post' action='0305While.php'>
<fieldset>
<legend>Factorial con while en PHP</legend>
<p>
<label for='n'>n</label>
<input id='n' maxlength='2' name='n' type='text' size='2' />
</p>
<p class='centrado'>
<input id='enviar' name='enviar' type='submit' value='Enviar' />
</p>
</fieldset>
</form>
}
<?
>
Descargar
Ejecutar
do..while
Esta sentencia es similar a while, salvo que con esta sentencia primero
ejecutamos el bloque de cdigo y despus se evala la condicin, por lo que el
bloque de cdigo se ejecuta siempre al menos una vez.
Ejemplo: Calcularemos el factorial de n con la sentencia do while
Ads not by this site
?php
if( isset($_POST['enviar']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
$n = $_POST['n'];
if($n == 0 and $n == 1) {
$factorial = 1;
} elseif( $n < 0 or $n >69) {
$factorial = 'indefenido';
} else {
$i = 2;
$factorial = 1;
do {
$factorial *= $i++;
} while ($i <= $n);
}
$html = "<p align='center'>El factorial de $n es ";
$html .= number_format($factorial, 0, '.',',').'</p><br />';
echo $html;
?>
<p class='centrado'>
<a href='0305doWhile.php'>
<img alt='Calcular otro factorial' src='../../images/icon-home.gif'
title='Calcular otro factorial' />
</a>
</p>
<?
} else {
?>
<form id='forma' name='forma' method='post' action='0305doWhile.php'>
<fieldset>
<legend>Factorial con do while en PHP</legend>
<p>
<label for='n'>n</label>
<input id='n' maxlength='2' name='n' type='text' size='2' />
</p>
<p class='centrado'>
<input id='enviar' name='enviar' type='submit' value='Enviar' />
</p>
</fieldset>
</form>
<?
}
?>
Descargar
Ejecutar
foreach
<?php
echo "<h4 align = 'center'>Torneo Bicentenario 2010. ";
echo "Jornada 17</h4>";
$equipo['Chivas'] = 32; $equipo['Monterrey']
= 36;
$equipo['Santos'] = 28; $equipo['Pumas']
= 28;
$equipo['Morelia'] = 25; $equipo['Cruz Azul']
= 25;
$equipo['Amrica'] = 25; $equipo['Gallos Blancos'] = 21;
$equipo['Toluca'] = 30; $equipo['Pachuca']
= 25;
$equipo['Atlas']
= 24; $equipo['Estudiantes']
= 19;
$equipo['Atlante'] = 16; $equipo['Jaguares']
= 19;
$equipo['Puebla'] = 19; $equipo['San Luis']
= 14;
$equipo['Tigres'] = 19; $equipo['Indios']
= 15;
arsort($equipo);
echo "<table>";
echo "<thead><tr><th>Equipo</th><th>Puntos</th></tr></thead>";
$i = 1;
foreach( $equipo as $key =>$puntos) {
echo "<tr>";
echo "<td>".$key."</td><td>".$puntos."</td>";
echo "</tr>";
}
echo "</table>";
?>
Descargar
Ejecutar
3.6. Arreglos
Una arreglo (array) es una estructura de datos que contienen una coleccin de
datos del mismo tipo. Los array se utilizan como contenedores para almacenar
datos relacionados ( en vez de declarar variables por separado para cada uno
de los elementos del array).
Array indexados
$estaciones[$i];
$sentidos[$i];
$numeros[$i];
<?php
$estacion = array ('Primavera', 'Verano', 'Otoo', 'Invierno');
echo "Las estaciones del ao son <br />";
for($i = 0; $i <=4; $i++)
echo $estacion[$i]."<br />";
?>
Descargar
Ejecutar
Los
arrays
se
ordenan
usando
las
funciones asort(), arsort(), ksort(), rsort(), sort(), uasort() y uksort() segn el
tipo de ordenacin.
Ejemplo: Generar un vector aleatorio de tamao n y ordenarlo.
?php
$n
= $_POST['n'];
if( isset($_POST['enviar']) && $_SERVER['REQUEST_METHOD'] == 'POST' &&
($n > 0 && $n < 200000)) {
for($i = 0; $i <= $n; $i++) { // Genera un vector de tamao n
$vector[$i] = mt_rand(1, 1000); //mt_rand genera nmeros aleatorios
}
sort($vector); // Ordena el vector
//Imprime el Vector ordenado
for($i = 0; $i <= $n; $i++) {
echo $vector[$i].' ';
}
?>
<p class='centrado'>
<a href='0306Vector.php'>
<img src='../../images/icon-home.gif' /><br />Home
</a>
</p>
<?
} else {
?>
<form id='forma' name='forma' method='post' action='0306Vector.php'>
<fieldset>
<legend>Ordenar un vector</legend>
<p><label for='n'>n</label>
<input alt='Nmero de elementos del vector' id='n' name='n'
title='Nmero de elementos del vector' type='text' />
</p>
<p><input id='enviar' name='enviar' type='submit' value='Enviar' /></p>
</fieldset>
</form>
<?
}
>
Descargar
Ejecutar
<?php
$temperatura = array(23, 25,27, 23, 27,26, 26, 28,27, 22, 26, 21,
23,24,21,18,18,19,26,28,27,27,26,18,23,26,24,27);
sort($temperatura);
$n = count($temperatura);
$promedio = 0;
for($i = 1; $i < $n; $i++)
$promedio += $temperatura[$i];
7
8
9
10
11
12
13
14
$promedio = $promedio/$n;
$maximo = $temperatura[$n - 1];
echo "Temperatura mnima = $temperatura[0] <br />";
echo "Temperatura media = $promedio <br />";
echo "<span class="e2507h48" id="e2507h48_2">Temperatura mxima</span> = $maxi
?>
Descargar
Ejecutar
funcin opendir
La lnea 4 realiza un ciclo, en el cual la funcin readdir lee uno a uno los
?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// llenar un array con todos los tems de un directorio
$handle = opendir('zodiaco');
while (false !== ($archivo = readdir($handle))) {
$archivos[] = strtolower($archivo);
}
closedir($handle);
sort($archivos);
foreach($archivos as $i => $valor) {
echo $valor."<br />";
};
?>
Descargar
Ejecutar
funcin print_r.
La funcin count cuenta el nmero de elementos del array (Lneas 4, 6,
En
la
lnea
18
se
restablecen
los
ndices
mediante
la
funcin array_values.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$array = array(1, 2, 3, 4, 5,70,90); // Creamos un array simple.
print_r($array); // Imprimimos el array
echo "<br />Nmero de elementos en el array: ".count($array)."<br />";
// ahora borraremos los items pero el apuntador del array quedar intacto:
$n = count($array);
for($i = 0; $i <= $n; $i++) {
unset($array[$i]);
}
print_r($array);
echo "<br />Nmero de elementos en el array: ".count($array)."<br />";
// Ahora sumaremos un item (observe que el nuevo ndice es 7, y no 0).
$array[] = 60;
print_r($array);
echo "<br />Nmero de elementos en el array: ".count($array)."<br />";
// Re-index:
$array = array_values($array);
$array[] = 57;
print_r($array);
echo "<br />Nmero de elementos en el array: ".count($array)."<br />";
?>
Descargar
Ejecutar
Funcin range
Crea un vector que contiene una secuencia de elementos. Sintaxis
<?php
echo "<h1>Uso de range</h1><br />";
echo "Vector simple<br />";
foreach (range(0, 20) as $numero) {
echo $numero."<br />";
}
echo "Vector con incremento<br />";
foreach (range(0, 200, 20) as $numero) {
echo $numero."<br />";
}
echo "Vector de letras<br />";
foreach (range('a', 'z') as $letra) {
echo $letra."<br />";
}
echo "Vector de letras descendente<br />";
foreach (range('M', 'C') as $letra) {
echo $letra."<br />";
}
?>
Descargar
Ejecutar
Arrays asociativos
Un array esta formado por conjuntos de parejas ndice => valor, o como suele
expresarse en ingls, key, value. Los cuales se expresan comunmente con
ndices o keys numricos (tambin conocidos como arrays escalares). Adems
es posible usar strings como ndices, es decir, cadenas de texto. Este tipo de
array es el array asociativo:
El ao se obtiene en la lnea 19
?php
function imprimeFecha(){
$mesArray = array(
1 => 'Enero', 2 => 'Febrero', 3 => 'Marzo', 4 => 'Abril', 5 => 'Mayo', 6 => 'Junio',
7 => 'Julio', 8 => 'Agosto', 9 => 'Septiembre', 10 => 'Octubre', 11 => 'Noviembre',
12 => 'Diciembre'
);
$semanaArray = array(
'Mon' => 'Lunes', 'Tue' => 'Martes', 'Wed' => 'Miercoles', 'Thu' => 'Jueves',
'Fri' => 'Viernes', 'Sat' => 'Sbado', 'Sun' => 'Domingo',
);
$mesReturn = $mesArray[date('n')];
$semanaReturn = $semanaArray[date('D')];
$dia = date('d');
$ao = date ('Y');
return $semanaReturn.' '.$dia.' de '.$mesReturn.' de '.$ao;
}
echo imprimeFecha();
>
Descargar
Ejecutar
Recorrer una tabla con ndices numricos mediante un bucle es sencillo, pero
cmo recorremos una tabla con ndices asociados? Para ello, utilizaremos
una serie de sentencias especificas para tal fin:
each() se usa normalmente de forma conjunta a list() para recorrer una matriz:
por ejemplo:
?
1
2
3
4
5
6
7
8
9
<?php
$deportivos = array('a' => 'BWM M3 Sedan', 'b' => 'Mazda Miata',
'c' => 'cFerrari 612 Sca glietti','d' => 'Corvette C6');
while (list($key, $val) = each($deportivos)) {
$foto = "deportivos/$val".'.jpg';
echo "<img src='$foto' border='0' height='350' width='500'/>"."<br />";
echo $val."<br />";
}
?>
Descargar
Ejecutar
Matrices
$arreglo[][]
= valor.
En
este
caso
los
ndices
se
mt_rand es una funcin PHP que genera nmeros aleatorios en este caso
entre 1 y 100.
?php
if( isset($_POST['enviar']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
$r = $_POST['renglones'] - 1;
$c = $_POST['columnas'] - 1;
$html = "<table class='simple'>";
for($i = 0; $i <= $r; $i++) {
$html .= "<tr>";
for($j = 0; $j <= $c; $j++) {
$matriz[$i][$j] = mt_rand(1, 100);
$html .= "<td>".$matriz[$i][$j]."</td>";
}
$html .= "</tr>";
}
echo $html."</table>";
?>
<p class='centrado'>
<a href='0306ImprimirMatriz.php'>
<img alt= '' src='../../images/icon-home.gif'><br />Home</a>
</p>
<?
} else {
?>
<form action='0306ImprimirMatriz.php' id='forma' name='forma' method='post' >
<fieldset>
<legend>Imprimir Matriz</legend>
<p><label for='renglones'>Renglones</label>
<input id='renglones' maxlength='1' name='renglones' size='1' type='text' />
</p>
<p><label for='columnas'>Columnas</label>
<input id='columnas' maxlength='1' name='columnas' size='1' type='text' />
</p>
<p>
<input id='enviar' name='enviar' type='submit' value='Enviar' />
</p>
</fieldset>
</form>
<?
}
>
Descargar
Ejecutar
matriz A y B
La sentencia $operacion*$matriz2[$i][$j] determina si se
realiza una suma o resta de matrices. $operacin toma los valores -1 y 1.
</select>
</p>
<p class='centrado'>
<input id='calcular' name='calcular' type='submit' value='Calcular' />
</p>
</fieldset>
/form>
Descargar
Ejecutar
Ejemplo: Producto de matrices
El producto de dos matrices se puede definir slo si el nmero de columnas de
la matriz izquierda es el mismo que el nmero de filas de la matriz derecha.
Si A es una matriz mn y B es una matriz np, entonces su producto
matricial AB es la matriz mp (m filas, p columnas) dada por:
?php
function imprimirMatriz($matriz, $r, $c, $mensaje) {
$html = "<table align='center'>";
$html .= '<tr><td colspan='."'$c'".'>'.$mensaje.'</td></tr>';
for($i = 0; $i < $r; $i++) {
$html .= "<tr>";
for($j = 0; $j < $c; $j++) $html .= '<td>'.$matriz[$i][$j].'</td>';
$html .= "</tr>";
}
$html .= "</table>";
echo $html;
}
function multiplicaMatriz($matriz, $matriz2, $fila1, $col1, $fila2, $col2){
$html = '<table class="simple" >';
$html .= '<tr><td>Matriz Resultante:</td></tr>';
for($i = 0; $i < $fila1; $i++) {
$html .= '<tr>';
for($j = 0; $j < $col2; $j++) {
$suma = 0;
for($k = 0; $k < $col1; $k++){
$suma += $matriz[$i][$k]*$matriz2[$k][$j];
}
$html .= '<td>'.($suma).'</td>';
}
$html .= '</tr>';
}
$html .= '</table><br><br>';
echo $html;
}
if( isset($calcular) && $_SERVER["REQUEST_METHOD"] == "POST") {
$fila1 = $_POST['f1'];
$col1 = $_POST['c1'];
$fila2 = $_POST['f2'];
$col2 = $_POST['c2'];
$suma = 0;
unset($enviar);
if($col1 == $fila2){
for($i=0; $i < $fila1; $i++)
for($j=0; $j < $col1; $j++) $matriz[$i][$j] = mt_rand(1,10);
imprimirMatriz($matriz, $fila1, $col1, 'Matriz A:');
for($i=0;$i < $fila2; $i++)
for($j=0; $j <$col2; $j++) $matriz2[$i][$j] = mt_rand(1,10);
imprimirMatriz($matriz2, $fila2, $col2, 'Matriz B:');
multiplicaMatriz($matriz, $matriz2, $fila1, $col1, $fila2, $col2);
?>
<p class='centrado'>
<a href='0306MultiplicaMatrices.php'>
<img alt='' src='../../images/icon-home.gif' ><br>Home
</a>
</p>
<?
} else {
$html = 'Las matrices no son conformables ';
$html .= 'Por lo tanto no se puede hacer la multiplicacion';
echo $html;
?>
<p class='centrado'>
<a href='0306MultiplicaMatrices.php'>
<img alt='' src='../../images/icon-home.gif' ><br>Home
</a>
</p>
<?
}
} else {
?>
<form action='0306MultiplicaMatrices.php' id='forma' method='post' name='forma' >
<fieldset>
<legend>Multiplicacin de Matrices</legend>
<p>Dimensin para la Matriz A</p>
<p><label for='f1'>Filas</label>
<input id='f1' maxlength='1' name='f1' size='2' type='text' />
</p>
<p><label for='c1'>Columnas</label>
<input id='c1' maxlength='1' name='c1' size='2' type='text' />
</p>
<p>Dimensin para la Matriz B</p>
<p><label for='f2'>Filas</label>
<input id='f2' maxlength='1' name='f2' size='2' type='text' />
</p>
<p><label for='c2'>Columnas</label>
<input id='c2' maxlength='1' name='c2' size='2' type='text' />
</p>
<p class='centrado'>
<input id='calcular' name='calcular' type='submit' value='Calcular' />
</p>
</fieldset>
</form>
<?
}
>
Descargar
Ejecutar
llamada Salseros
Mediante la instruccin foreach recorremos dicha matriz que obtiene un
?php
$Salseros = array(
array('Adolescentes','Se acabo el amor', 'Sera o no sera'),
array('Alberto Barros','Cali Aji', 'La Palomita'),
array('Gilberto Santa Rosa','Vivir Sin Ti', 'Me Cambiaron Las Preguntas'),
array('Maelo Ruiz','Te va a doler','Regalame una noche'),
array('Mariano Civico','Ana Mile','La Mitad'),
array('Puerto Rico Power','Quiereme tal como soy','Tengo miedo'),
array('Tito Nieves','Si yo fuera el','La leccion de Pedro K'),
array('Victor Manuelle', 'Noche De Loba','Nuestro amor se ha vuelto ayer')
);
?>
<table>
<thead>
<th>Salsero</th>
<th>Cancin 1</th>
<th>Cancin 2</th>
</thead>
<tbody>
<?
$html= '';
foreach($Salseros as $cantante) {
$html .= '<tr>';
$i = 1;
foreach($cantante as $cancion) {
if ($i !== 1) {
$rola = 'mp3/'.$cancion.'.mp3';
$html .= "<td><embed class='flash_close' width='100' ";
$html .= "height='25' type='application/x-shockwave-flash' ";
$html .= "src='singlemp3player.swf' ";
$html .= "pluginspage='http://www.adobe.com/go/getflashplayer' ";
$html .= "flashvars='file=$rola'/><br />";
$html .= $cancion.'</td>';
} else {
$html .= '<td>'.$cancion.'</td>';
}
++$i;
}
$html .= '</tr>';
}
echo $html;
?>
Descargar
Ejecutar
3.7. Funciones
Una funcin es el trmino para describir una secuencia de rdenes que hacen
una tarea especfica de una aplicacin ms grande.
Una funcin de usuario en PHP no es ms que una porcin de cdigo que
podemos llamar en cualquier momento. De un lado, al dividir nuestro cdigo en
funciones podemos aislar y perfeccionar cada una de sus funcionalidades; de
otro lado, podemos reutilizar este cdigo, ya que una funcin puede
ser llamada cuantas veces la necesitemos.
Para definir una funcin debemos usar la palabra reservada function. Para
llamar la funcin basta con invocar su nombre.
Un tipo de dato de retorno. Tipo de dato del valor que la funcin devolver
al terminar su ejecucin.
Una lista de parmetros. Especificacin del conjunto de argumentos
(pueden ser cero, uno o ms) que la funcin debe recibir para realizar su tarea.
$_POST['centigrados'];
isset($_POST['convertir']) && $_SERVER["REQUEST_METHOD"] == "POST" && !empty($g) ) {
unction cF( $grados ){
return 1.8 * $grados + 32;
se {
>
<form id='forma' name='forma' method='POST' action='0307Centigrados.php'>
<fieldset>
<legend>Grados centgrados a grados Fahrenheit</legend>
<p>
<label for='centigrados'>Centgrados</label>
<input alt='Grados centgrados' name='centigrados' maxlength='3'
title='Grados centgrados' size='3' type='text' />
</p>
<p class='centrado'>
<input name='convertir' type='submit' value='Convertir' />
</p>
</fieldset>
</form>
Descargar
Ejecutar
?php
function conversion( $grados ){
$f = 1.8 * $grados + 32;
$r = $f + 459.67;
$k = $r/1.8;
return array($f, $r, $k);
}
$convertir = $_POST['convertir'];
$formato = "<p class='centrado'>";
>
Descargar
Ejecutar
dio = $_POST['radio'];
isset($_POST['calcular']) && $_SERVER['REQUEST_METHOD'] == 'POST' && $radio >0) {
unction calculo( $radio, &$area, &$volumen ){
$area = 4 * pi() * $radio * $radio;
$volumen = $area * $radio /3;
<p>
<input name='calcular' type='submit' value='Calcular' />
</p>
</fieldset>
</form>
<?
Descargar
Ejecutar
?php
$yardas = $_POST['yardas'];
if( isset($_POST['convertir']) && $_SERVER["REQUEST_METHOD"] =='POST' && $yardas > 0) {
function yardas_metros( $yarda = 1 ){
return 0.9144 * $yarda;
}
$forma = "<p class='centrado'>";
$y = yardas_metros();
$m = yardas_metros($yardas);
echo "$forma Una yarda equivale a $y metros</p>";
echo "$forma $yardas yardas equivalen a $m metros</p>";
?>
<p class='centrado'>
<a href='0307Yardas.html'>
<img alt='' |src='../../images/icon-home.gif'><br />Home
</a>
</p>
<?
>
} else {
?>
<form method='POST' action='0307Yardas.php'>
<fieldset>
<legend>Convertir yardas a metros</legend>
<p>
<label for='yardas'>Yardas</label>
<input maxlength='4' name='yardas' size='4' type='text' />
</p>
<p>
<input name='convertir' type='submit' value='Convetir' />
</p>
</fieldset>
</form>
<?
}
Descargar
Ejecutar
Funciones recursivas
?php
$n = $_POST['n'];
$forma = "<p class='centrado'>";
if( isset($_POST['calcular'])
and $_SERVER["REQUEST_METHOD"] == 'POST'
and !empty($n) && ($n >= 0 and $n <= 69)) {
function factorial($n = 1) {
if($n <= 1)
{
return 1;
} else { //llamada as misma
return $n * factorial($n - 1);
}
} //Fin: Factorial
echo "$forma El factorial de $n = ".factorial($n)."</p>";
?>
<p class='centrado'>
<a alt='' href='0307Factorial.php'>
<img src='../../images/icon-home.gif' ><br />Home</a>
</p>
<?
} else {
?>
<form id='forma' name='forma' method='POST' action='0307Factorial.php'>
<fieldset>
<legend>Clculo del factorial de n</legend>
<p>
<label for='n'>n</label>
<input alt='Ingrese un nmero' maxlength='2' name='n' size='2' type='text' />
</p>
<p>
<input name='calcular' type='submit' value='Calcular' />
</p>
</fieldset>
</form>
<?
}
>
Descargar
Ejecutar
?php
function tipo($m) {
$n = abs($m);
$forma = "<p class='centrado'>";
if($n == 0) return "$forma 0 es par</p>";
if($n == 1) return "$forma 1 es un primo impar</p>";
if($n == 2) return "$forma 2 es el unico primo par<p />";
if($n % 2 == 0) return "$forma".number_format($m, 0, ".", ",")." es par</p>";
$multiplo = floor(sqrt($n));
$i = 3;
while ( ($n % $i !== 0) && ( $i <= $multiplo )) $i += 2;
if( $i > $multiplo ) {
return "$forma $m es primo</p>";
} else {
return "$forma $m es impar</p>";
}
}
if( isset($_POST['calcular']) && $_SERVER["REQUEST_METHOD"] == 'POST'
&& !empty($_POST['n']) ) {
echo tipo($_POST['n']);
?>
<p class='centrado'><a href='0307Primos.php'>
<img alt='' src='../../images/icon-home.gif' /><br />Home</a>
</p>
<?
} else {
?>
<form id='forma' name='forma' method='POST' action='0307Primos.php'>
<fieldset>
<legend>Clculo de un nmero primo</legend>
<p>
<label for='n'>n</label>
<input name='n' type='text' id ='n' size='6' maxlength='6' />
</p>
<p>
<input
</p>
</fieldset>
</form>
}
<?
>
Descargar
Ejecutar
?php
function mcd($a, $b) {
$a = abs($a);
$b = abs($b);
if ($b == 0) $resultado = $a; else $resultado = mcd($b, $a%$b);
return $resultado;
} //mcd
$a = $_POST['a'];
$b = $_POST['b'];
$forma = "<p class='centrado'>";
if( isset($_POST['calcular']) && $_SERVER['REQUEST_METHOD'] == 'POST' &&
!empty($a) && !empty($b)) {
$mcd = mcd($a,$b);
echo "$forma mcd( $a, $b) = $mcd</p>";
echo "$forma $a".'/'.$b. ' = '.$a/$mcd.'/'.$b/$mcd."</p>";
?>
<p class='centrado'>
<a href='0307mcd.php'>
<img src='../../images/icon-home.gif' ><br />Home
</a>
</p>
<?
} else {
?>
<form id='forma' name='forma' method='post' action='0307mcd.php'>
<fieldset>
<legend>Mximo comn divisor</legend>
<p>
<label for='a'>Numerador</label>
<input maxlength='2' name='a' size='2' type='text' />
</p>
<p>
<label for='b'>Denominador</label>
<input maxlength='2' name='b' size='2' type='text' />
</p>
<p>
<input maxlength='2' name='calcular' size='2' type='submit' value='Calcular' />
</p>
</fieldset>
</form>
<?
}
>
Descargar
Ejecutar
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
function mcd($a, $b) {
if ($b == 0) $resultado = $a;
else $resultado = mcd($b, $a%$b);
return $resultado;
} //mcd
function mcm($a, $b) {
$a = abs($a);
$b = abs($b);
return ($a * $b)/mcd($a, $b);
}
$a = $_POST['a'];
$b = $_POST['b'];
$forma = "<p class='centrado'>";
if( isset($_POST['calcular']) && $_SERVER['REQUEST_METHOD'] == 'POST' &&
!empty($a) && !empty($b) ) {
$mcm = mcm($a,$b);
echo "$forma mcm( $a, $b) = $mcm</p>";
?>
<p class='centrado'>
<a href='0307mcm.php'>
<img src='../../images/icon-home.gif'><br />Home
</a>
</p>
<?
} else {
?>
<form id='forma' name='forma' method='post' action='0307mcm.php'>
<fieldset>
<legend>Mnimo comn mltiplo</legend>
<p>
<label for='a'>Numerador</label>
<input maxlength='2' name='a' size='2' type='text' />
</p>
<p>
<label for='b'>Denominador</label>
<input maxlength='2' name='b' size='2' type='text' />
</p>
<p>
<input name='calcular' type='submit' value='Calcular' />
</p>
</fieldset>
</form>
<?
}
?>
42
43
44
45
46
47
48
Descargar
Ejecutar
Ejemplo de aplicacin: Suma, resta, multiplicacin y divisin de quebrados
Suma o Resta
Multiplicacin
Divisin
Reducir
Fracciones
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function numeroEuler() {
$error = 0.000000000001;
$e = 2;
$anterior = 0;
$i = 2;
$f = 2;
while ( abs($e - $anterior) >= $error) {
$anterior = $e;
$e += 1/$f;
$f = $f * ++$i;
}
return $e;
}
$e = numeroEuler();
echo 'Nmero de Euler o constante de Napier = '.$e
?>
Descargar
Ejecutar
?php
function exponencial($x = 0) {
//mximo error permitido
$error = 0.000000000001;
if ($x != 0) { $e = 1;} else return 0;
$anterior = 0;
$i = 0;
$f = 1;
//Aproximacin
while ( abs($e - $anterior) >= $error) {
$anterior = $e;
$f *= ++$i;
$e += pow($x, $i)/$f;
}
return $e;
}
$x = $_POST['e'];
$forma = "<p class='centrado'>";
if( isset( $_POST['calcular'] )
and $_SERVER['REQUEST_METHOD'] == 'POST'
and !empty($x)) {
echo "$forma Exponente($x) = ".exponencial($x)."</p><br />";
?>
<p class='centrado'>
<a href='0307ExponencialSerie.php'>
<img alt='' src='../../images/icon-home.gif' ><br />Home
</a>
</p>
<?
} else {
?>
<form name='forma' method='POST' action='0307ExponencialSerie.php'>
<fieldset>
<legend>exp(x)</legend>
<p>
<label for='e'>x</label>
<input alt='Ingrese un nmero' maxlength='2' name='e' size='2' type='text' />
</p>
<p>
<input name='calcular' type='submit' value='Calcular' />
<?
</p>
</fieldset>
</form>
>
Descargar
Ejecutar
3.8 Formularios
Los formularios no forman parte de PHP pero le permiten a este interactuar con
el mundo exterior. PHP maneja en forma simple las variables de formulario, es
capaz de generar salidas HTML. La sintaxis de un formulario es la siguiente:
action
Identifica el archivo PHP que manipula el formulario que se envia. Los formularios son
manipulados por PHP del lado servidor.
target
Este parmetro indica dnde debe mostrarse esa informacin. Puede tomar los
valores:
id
Nombre del formulario. id y name deben comenzar con una letra ([A-Za-z]) que
puede estar seguida por un nmero cualquiera de letras, dgitos, ([0-9]),
guiones ("-"), subguiones ("_"), dos puntos (":"), y puntos ("."). Es un
identificador nico, por ejemplo el CURP y el RFC.
name
?php
function valoracion($imc) {
if ($imc >= 18.5 and $imc <= 24.99) {
$valoracion = 'NORMAL';
} elseif ($imc >= 25 and $imc <= 29.99) {
$valoracion = 'PREOBESO';
} elseif ($imc >= 30) {
$valoracion = 'OBESO';
} elseif ($imc < 18.5) { $valoracion = 'INFRAPESO'; }
return $valoracion;
}
$html .= "<tr><td><strong>Peso</strong></td><td>";
$html .= $peso."</td><td>Kg</td></tr>";
$html .= "<tr><td><strong>Altura</strong></td>";
$html .= "<td>".$altura."</td><td>Mt</td></tr>";
$html .= "<tr><td><strong>IMC</strong></td>";
$html .= "<td>".number_format($imc, 2)."</td><td>kg/m<sup>2</sup></td></tr>";
$html .= "<tr><td><strong>Valoracin</strong></td><td>".valoracion($imc);
$html .= "</td><td></td></tr></table>";
return $html."<br />";
}
$calcular = $_POST['calcular'];
if( isset($calcular) and $_SERVER['REQUEST_METHOD'] == 'POST' ) {
$peso
= $_POST['peso'];
$altura =
$_POST['altura'];
} else {
$html =
}
echo "<p class='centrado'>".$html."</p>";
?>
<p class='centrado'>
<a href='0308IMC.php'><img src='../../images/icon-home.gif' /><br />Home</a>
</p>
<?
} else {
?>
<form name='forma' method='post' action='0308IMC.php'>
<fieldset>
<legend>ndice de masa corporal</legend>
<p>
<label for='peso'>Peso</label>
<input name='peso' type='text' alt='Peso en kilogramos' /> Kg
</p>
<p>
<label for='altura'>Altura</label>
<input name='altura' type='text' alt='Altura en metros' /> mts
</p>
<p>
<input type='submit' name='calcular' value='Calcular' id='calcular' />
</p>
</fieldset>
</form>
<?
>
Descargar
Ejecutar
Si b2 es menor que 4ac los resultados de X sern dos valores con parte
?
1
<?php
$calcular = $_POST['calcular'];
4
5
6
7
8
9
10
unset($calcular);
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
if( !(empty($a) or empty($b) or empty($c) )) {
if($a != 0) {
$descriminante = ($b * $b) - 4 * $a * $c;
if($descriminante >= 0) {
11
$raiz = sqrt($descriminante);
12
13
14
} else {
15
$raiz = sqrt(-$descriminante)/(2*$a);
16
$real = -$b/(2*$a);
17
18
19
20
21
22
23
}
echo "<p class='centrado'>x1 = ".$x1."</p>";
echo "<p class='centrado'>x2 = ".$x2."</p>";
} else echo "<p class='centrado'>No es una cuadrtica</p>";
} else echo "<br /><p class='centrado'>Faltan datos</p>";
24
25
} else {
26
?>
27
28
<fieldset>
29
<legend>Formula general</legend>
30
<p>
31
<label for='a'>a</label>
32
33
<p>
34
<label for='b'>b</label>
35
36
</p>
37
<p>
38
<label for='c'>c</label>
39
40
</p>
41
<p class='centrado'>
42
43
</p>
44
</fieldset>
45
</form>
<?
46
}
47
48
?>
49
Descargar
Ejecutar
?php
$calcular = $_POST['calcular'];
if( isset($calcular) && $_SERVER["REQUEST_METHOD"] == "POST" ) {
$a
= $_POST['a'];
$operador = $_POST['operador'];
$b
= $_POST['b'];
>
Descargar
Ejecutar
<?
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE],0,2) == 'es'){
include('paginaEspanol.html');
>} else {
include('paginaIngles.html');
}
?>
<html>
<body>
La fecha del da de hoy es: <? echo date("Y/m/d"); ?>
La hora local del servidor es: <? echo date("G:i:s");
?>
</body>
</html>
Ejecutar
Procesando Formularios
Para conocer mediante que mtodo recibimos el formulario en PHP usamos la
variable de servidor $_SERVER['REQUEST_METHOD']. El siguiente cdigo
muestra su uso.
?
1
2
3
4
5
6
7
<?php
if ($_SERVER['REQUEST_METHOD'] == 'GET'){
echo 'Usaste GET para enviar los datos';
} else if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo 'Usaste PUT para enviar los datos';
}
?>
Eliminar espacios
est funcin solo elimina los espacios en blanco de los extremos izquierdo y
derecho de la cadena, ignorando los espacios en blanco internos (Lnea 10)..
La funcin strlower convierte la cadena en minsculas (Lnea 3).
ereg_replace busca cualquier ocurrencia del patrn en la cadena y la
reemplaza por otra. En nuestro caso, cambia todo espacio en blanco por vacio
(Lnea 4).
?
1
2
3
4
5
6
7
8
9
10
<?php
function eliminarEspacios($cadena) {
$cadena = strtolower($cadena);
$cadena = ereg_replace( ' ', '', $cadena);
return "<p class='centrado'>".$cadena."</p><br />";
}
if( isset($_POST['enviar']) && $_SERVER['REQUEST_METHOD'] == 'POST' ) {
$cadena = trim($_POST['cadena']);
if( empty($cadena)) {
echo "<p class='centrado'>Enviaste una cadena vaca</p>";
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Descargar
Ejecutar
El
programa
principal
realiza
una
interfase
bsica
para
manejar multiples formularios en un mismos archivo. El procesamiento con
PHP permite capturar las diferentes caractersticas de las figuras geomtricas.
?php
$calcular = $_POST['calcular'];
if(isset( $calcular ) && $_SERVER['REQUEST_METHOD'] == 'POST' ) {
$cuerpo = $_POST['cuerpo'];
if($cuerpo == 'cuadrado') {
?>
<form name='cuadrado' method='post' action='0309FigurasAreaPerimetro.php'>
<fieldset>
<legend>Clculo del rea y permetro de un cuadrado</legend>
<p>
<label for='lado'>Lado</label>
<input name='lado' type='text' />
</p>
<p class='centrado'>
<input type='submit' name='calcular' id='calcular' value='Calcular' />
</p>
<input name='figura' type='hidden' value='Cuadrado' />
</fieldset>
</form>
<?
} else if($cuerpo == "circulo") {
?>
<?
} else {
?>
<?
}
} else {
?>
<form name='forma' method='post' action='0309Figuras.php'>
<fieldset>
<legend>Clculo rea y permetro figuras geomtricas</legend>
<p>
<label for='cuerpo'>Figura</label>
<select name='cuerpo'>
<option value='circulo'>Circulo</option>
<option value='cuadrado'>Cuadrado</option>
<option value='rectangulo'>Rectngulo</option>
</select>
</p>
<p>
<input name='calcular' type='submit' value='Calcular' />
</p>
</fieldset>
</form>
<?
}
>
p
figura= $_POST['figura'];
f($figura == 'Cuadrado') {
$lado
= $_POST['lado'];
$area
= number_format($lado * $lado, 2, '.', ',');
$perimetro = number_format(4 * $lado, 2, '.', ',');
$resultado = "El rea de un Cuadro de lado = $lado es de $area unidades cuadradas ";
else if($figura == 'Rectangulo') {
$altura = $_POST['altura'];
$base
= $_POST['base'];
$area
= number_format($altura * $base, 2, '.', ',');
$perimetro = number_format(2 * ($altura + $base), 2, '.', ',');
$resultado = "El rea de un Rectngulo de base = $base y altura = $altura es ";
$resultado .= "de $area unidades cuadradas ";
else {
$radio
= $_POST['radio'];
$area
= number_format(pi() * $radio * $radio, 2, '.', ',');
$perimetro = number_format(2 * $radio* pi(), 2, '.', ',');
$resultado = "El rea de un Circulo de radio = $radio es de $area unidades cuadradas ";
Descargar
Ejecutar
Envio de correos
donde
?php
$enviar = $_POST['enviar'];
if ( isset($enviar) && $_SERVER["REQUEST_METHOD"] == "POST") {
$destino = trim($_POST['destino']);
$asunto = trim($_POST['asunto']);
$mensaje = trim($_POST['mensaje']);
if( !( empty($destino) or empty($asunto) or empty($mensaje))) {
if( filter_var($destino, FILTER_VALIDATE_EMAIL)) {
mail($destino, $asunto, $mensaje) or die ("Su mensaje no se envio a $destino.");
$cadena = "Mensaje enviado con xito a $destino";
} else $cadena = "Correo no valido";
} else $cadena = "Faltan datos";
?>
<p class='centrado'>
<a href='0309email.php'><img src='../../images/icon-home.gif' /><br />Home</a>
</p>
<?
} else {
?>
<form name='forma' method='post' action='0309email.php'>
<fieldset>
<legend>Envio de email con PHP</legend>
<p>
<label for='destino'>Destino</label>
<input name='destino' type='text' />
</p>
<p>
<label for='asunto'>Asunto</label>
<input name='asunto' type='text' />
</p>
<p>
<label for='mensaje'>Mensaje</label>
<textarea cols='40' name='mensaje' rows='5'></textarea>
</p>
<p class='centrado'>
<input name='enviar' type='submit' value='Enviar' />
</p>
</fieldset>
</form>
<?
}
>
Descargar
Ejecutar
hp
unction entero( $cadena, $n ) {
if( is_numeric($cadena) ) {
if( $n == $cadena ) {
if( $n >= 1 && $n <= 3999 ) { return TRUE; }
else { echo "<p class='centrado'>"."El nmero $n est fuera de rango"."</p><br />";}
} else { echo "<p class='centrado'>".'Nmero no valido = '.$cadena."</p><br />";}
} else { echo "<p class='centrado'>".'Cadena no valida '.$cadena."</p><br />"; }
return FALSE;
unction unidades($n) {
$unidad= array('I', 'II','III','IV','V','VI','VII','VIII','IX');
$n = (int)$n;
if( $n >= 1 ) { return $unidad[$n -1];
} else { return "";}
unction decenas($n) {
$n = (int)$n;
$decena = array('X', 'XX','XXX','XL','L','LX','LXX','LXXX','LX');
if( $n >= 10 ) { return $decena[substr($n, 0, 1) - 1].unidades(substr($n,1,1));
} else { return unidades($n); }
unction centenas($n) {
$n = (int)$n;
$centena = array ('C','CC','CCC','CD','D','DC','DCC','DCC','CM');
if( $n >= 100 ) { return $centena[substr($n, 0, 1) - 1].decenas(substr($n, 1, 2));
unction miles($n){
if( strlen($n) == 4 ) {
$mil = array('M','MM','MMM');
$romano = $mil[substr($n, 0, 1) - 1];
$romano .= centenas( substr($n,1,3) );
} else {$romano = centenas($n);}
return $n.' = '.$romano;
enviar = $_POST['enviar'];
f( isset($enviar) && $_SERVER["REQUEST_METHOD"] == "POST") {
$n = (int)$_POST['numero'];
if( entero($_POST['numero'], $n) ) {
echo "<p class='centrado'>".miles($n)."</p>";
} else "<p class='centrado'>"."Cadena no valida ".$_POST['numero']."<br />";
?>
<p class='centrado'>
<a href='0309Romanos.php'>
<img src='../../images/icon-home.gif' ";/><br />Home
</a>
</p>
<?
else {
?>
<form name='forma' method='post' action='0309Romanos.php'>
<fieldset>
<legend>Convertir nmeros Arbigos a Romanos PHP</legend>
<p>
<label for='numero'>Nmero</label>
<input maxlength='4' name='numero' size='4' type='text' />
</p>
<p class='centrado'>
<input name='enviar' type='submit' value='Aceptar' />
</p>
</fieldset>
</form>
<?
Descargar
Ejecutar
n basico($numero) {
alor = array ('uno','dos','tres','cuatro','cinco','seis','siete','ocho','nueve','diez',
'once','doce','trece','catorce','quince','diecisis','diecisiete',
'dieciocho','diecinueve','veinte','veintiuno','veintidos','ventitres',
'veinticuatro','veinticinco','veintisis','veintisiete','veintiocho','veintinueve');
turn $valor[$numero - 1];
tion decenas($n) {
ecenas = array (30=>'treinta',40=>'cuarenta',50=>'cincuenta',60=>'sesenta',
70=>'setenta',80=>'ochenta',90=>'noventa');
n <= 29) return basico($n);
$n % 10;
( $x == 0 ) {
return $decenas[$n];
else return $decenas[$n - $x].' y '. basico($x);
ction centenas($n) {
cientos = array (100 =>'cien',200 =>'doscientos',300=>'trecientos',400=>'cuatrocientos',
500=>'quinientos',600=>'seiscientos',700=>'setecientos',800=>'ochocientos',
900 =>'novecientos');
f( $n >= 100) {
if ( $n % 100 == 0 ) {
return $cientos[$n];
} else {
$u = (int) substr($n,0,1);
$d = (int) substr($n,1,2);
return (($u == 1)?'ciento':$cientos[$u*100]).' '.decenas($d);
}
else return decenas($n);
ction miles($n) {
if($n > 999) {
if( $n == 1000) {return 'mil';}
else {
$l = strlen($n);
$c = (int)substr($n,0,$l-3);
$x = (int)substr($n,-3);
if($c == 1) {$cadena = 'mil '.centenas($x);}
else if($x != 0) {$cadena = centenas($c).' mil '.centenas($x);}
else $cadena = centenas($c). ' mil';
return $cadena;
}
} else return centenas($n);
ction millones($n) {
f($n == 1000000) {return 'un milln';}
else {
$l = strlen($n);
$c = (int)substr($n,0,$l-6);
$x = (int)substr($n,-6);
if($c == 1) {
$cadena = ' milln ';
} else {
$cadena = ' millones ';
}
return miles($c).$cadena.(($x > 0)?miles($x):'');
}
ction convertir($n) {
switch (true) {
case ( $n >= 1 && $n <= 29)
: return basico($n); break;
case ( $n >= 30 && $n < 100) : return decenas($n); break;
case ( $n >= 100 && $n < 1000) : return centenas($n); break;
case ($n >= 1000 && $n <= 999999): return miles($n); break;
case ($n >= 1000000): return millones($n);
}
rtir = $_POST['convertir'];
='';
set($convertir) && $_SERVER['REQUEST_METHOD'] == 'POST'
&& !empty($_POST['numero']) ) {
l = "<p class='centrado'>".$_POST['numero'].' se escribe ';
html .= "<strong>".ucfirst(convertir($_POST['numero']))."</strong></p><br />";
cho $html;
Descargar
Ejecutar
Grficos
Grfica X - Y
?php
include_once('jpgraph/jpgraph.php');
include_once('jpgraph/jpgraph_line.php');
$minimo = array(19, 20, 22, 24, 25, 25, 25, 25, 24, 24, 21, 20);
$maximo = array(26, 27, 29, 31, 32, 32, 32, 32, 32, 31, 29, 27);
$promedio = array(22.5, 23.5, 25.5, 27.5, 28.5, 28.5, 28.5, 28.5, 28.0, 27.5, 25.0, 23.5);
$graph = new Graph(650, 450);
$graph->SetScale('textlin',18, 38);
// Escala linear en x
$graph->SetMargin(50,60,40,45);
$graph->SetMarginColor('white');
$graph->title->Set('Temperatura en Veracruz, Ver. Mxico');
$graph->xaxis->title->Set('Mes');
$gDateLocale->Set('spanish'); //Obtiene los meses del ao
$mes = $gDateLocale->GetShortMonth();
$graph->xaxis->SetTickLabels($mes);
//$graph->xaxis->SetFont(FF_ARIAL,FS_BOLD,8);
$graph->yaxis->title->Set('Grados centgrados');
//$graph->yaxis->SetFont(FF_ARIAL,FS_BOLD,8);
$tminimo = new LinePlot($minimo);
$tminimo->SetLegend('Mnimo');
$tminimo->SetColor('blue');
$tpromedio = new LinePlot($promedio);
$tpromedio->SetLegend('Promedio');
$tpromedio->SetColor('green');
$tmaximo = new LinePlot($maximo);
$tmaximo->SetColor('red');
$tmaximo->SetLegend('Mximo');
$graph->Add($tminimo);
$graph->Add($tpromedio);
$graph->Add($tmaximo);
$graph->Stroke();
>
Descargar
Ejecutar
Gfica de barras
El ejemplo describe los resultados oficiales del examen de admisin 2010 del
Instituto Tcnologico de Veracruz.
?php
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_bar.php');
$psemestre = array(74, 75, 75, 75, 100, 75, 75, 75, 100);
$cero = array(90, 36, 72, 90, 90, 90, 61, 61, 90);
$carreras = array('Admin', 'Bioqumica','Electrnica', 'Electrca','Industrial',
'Mecnica','Mecatrnica','Qumica','Sistemas');
$grafica = new Graph(650, 450);
// Crea la grfica
$grafica->SetScale('textlin', 0, 120);
//$grafica->SetShadow();
$grafica->SetMarginColor('white:1.1');
$grafica->legend->SetPos(0.5,0.97,'center','bottom');
$serie1 = new BarPlot($psemestre); // Crea las barras
$serie1->SetLegend('1er. Semestre');
$serie1->value->Show();
$serie1->value->SetFormat('%0.0f');
$serie1->SetWidth(0.6);
$serie1->SetFillGradient('navy:0.9','navy:1.85',GRAD_LEFT_REFLECTION);
$serie2 = new BarPlot($cero);
$serie2->SetLegend('Sem. Cero');
$serie2->value->Show();
$serie2->value->SetFormat('%0.0f');
$serie2->SetWidth(0.6);
$serie2->SetFillGradient('red:0.95','red:1.85',GRAD_RIGHT_REFLECTION);
// Create the grouped bar plot
$gbplot = new GroupBarPlot(array($serie1,$serie2));
$grafica->Add($gbplot); // Suma la serie a la grfica
$grafica->title->Set('Resultado oficial examen admisin I.T.V 2010');
$grafica->xaxis->title->Set('Carrera');
$grafica->xaxis->SetTickLabels($carreras);
$grafica->yaxis->title->Set('Nmero de aceptados');
$grafica->Stroke(); // Despliega la grfica
>
Descargar
Ejecutar
Grficas de pastel
?php
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_pie.php');
$datos = array(16, 30); // Datos
$grafica = new PieGraph(600,400,'auto'); // Crear Grfico
$grafica->SetFrame(true); // Despliega el borde
$grafica->SetShadow();
$grafica->title->Set('Alumnos por genero Seguridad en Redes. Verano 2010. I.T.V');
$grafica->title->SetMargin(8); // Add a little bit more margin from the top
>
// Crea la grfica
$genero = new PiePlotC($datos);
$genero->SetSize(0.35);
$genero->value->SetColor('white');
$genero->value->Show();
$genero->midtitle->Set('Genero');
$genero->SetMidColor('yellow');
$genero->SetLabelType(PIE_VALUE_PER);
$lbl = array('Mujeres\n%.1f%%','Hombres\n%.1f%%');
$genero->SetLabels($lbl);
$genero->SetShadow();
$genero->ExplodeAll(15); // Explode all slices 15 pixels
$grafica->Add($genero); // Add plot to pie graph
$grafica->Stroke(); //Despliega la grfica
Descargar
Ejecutar
Los archivos que PHP pueden ser secuenciales y binarios. Los archivos
secuenciales son archivos de texto y los binarios pueden almacenar grficos y
diversos formatos de informacin. Bsicamente responden a las siguientes
operaciones bsicas:
abrir
borrar
cerrar
copiar
escribir
leer
renombrar
Descripcin
copy
Copia un archivo
rename
Cambia
el
nombre
de $antes a $despues
unlink
Borra el archivo
Sintaxis
copy($origen,
$destino)
del
archivo rename($antes,
$despues)
unlink($archivo)
Manejo de imagenes
Ejemplo:
<?php
if ($gestor = opendir('../imagenes')) {
// Abre un gestor de directorios
echo "<table border=1 align='center'>";
echo "<tr>";
$i=0;
while (false !== ($archivo = readdir($gestor))) {
//readdir: Lee un elemento del directorio
//$gestor abierto previamente
//con opendir y desplaza el puntero al elemento siguiente
if ($archivo != "." and $archivo != "..") {
//checa que no sea subdirectorio
$extension = strtolower(substr($archivo, -4));
//strlower pasa a minuscula una cadena en este caso
//los 4 ltimos caracteres
//de la cadena
if (($extension == '.jpg') or ($extension == '.gif')
or ($extension == '.png')) {
if ($i==4) {// Cuatro imagenes por rengln
$i=0;
echo "</tr>";
echo "<tr>";
}
$i++;
echo "<td>";
echo "<a href='../imagenes/$archivo'>";
echo "<img src='../imagenes/$archivo'";
echo "border='0' ></a>";
echo "</td>";
}
}
}
echo "</tr>";
echo "</table>";
closedir($gestor); //Cierra el gestor
}
?>
Descargar
Ejecutar
Ejemplo:
La funcin glob() realiza una bsqueda por todos los nombres de ruta que
coincidan con cierto patrn. En este caso con los grficos validos para html.
sort() ordena los nombres de los archivos encontrados.
el ciclo foreach recorre el arreglo de archivos.
<?php
echo "<table border=1 align='center'>";
echo "<tr>";
$i = 0;
//carga las imagenes de la carperta
//La funcin glob() realiza una bsqueda por todos los nombres
//de ruta que coincidan con patrn
$ruta = "../imagenes/";
$imagenes = glob($ruta . "{*.jpg, *.gif, *.png}", GLOB_BRACE);
sort($imagenes);
//Recorre el vector
foreach($imagenes as $foto){
if ($i==4) {
$i=0;
echo "</tr>";
echo "<tr>";
}
$i++;
echo "<td><a href='".$foto."'><img src='".$foto."/></a></td>";
}
echo "</tr>";
echo "</table>";
?>
Descargar
Ejecutar
Funcin
Descripcin
filesize
fopen
Abre un archivo
identificador id.
le
Sintaxis
filesize($archivo);
asigna
un $id =fopen($archivo,
$modo);
header
Las lneas 7 y 8 envan cabeceras HTTP para indicar el tamao y formato del
archivo.
<?php
$archivo = fopen('0310alumnos.txt', 'r');
//Imprime una linea hasta que el
//final del archivo es encontrado
while(!feof($archivo)) {
echo fgets($archivo)."<br />";
}
fclose($archivo);
?>
Ejecutar
Otra forma de hacerlo es mediante la funcin fread (lnea 6) la cual lee el
contenido de un archivo.
<?php
// obtiene el contenido de un archivo en
//una cadena
$archivo = '0310alumnos.txt';
$id = fopen($archivo, 'r');
$contenido = fread($id, filesize($archivo));
echo $contenido;
fclose($id);
?>
Ejecutar
Contador de visitas
PHP puede conectarse con bases de datos de dos formas: mediante el uso
directo de funciones propias del intrprete que dependen del gestor de base de
datos usadas o a trves del estndar ODBC (Open Data Base Connectivity).
1.
Establecercontactoconlabasededatos
2.
Realizarlasoperacionesnecesarias
3.
Cerrarlosrecursosempleados
Para conectarse con una base de datos es necesario crear una conexin con el
servidor. Esto se logra en PHP mediante el uso de la funcinmysql_connect() .
Sintaxis
mysql_connect($ruta, $usuario, $password);
Parmetro
Descripcin
$ruta
Opcional.
$usuario
Opcional.
$password
(Lnea 8)
mysql_close cierra la conexin a la base de datos (Lnea 10).
?
1
2
3
4
5
6
7
8
9
10
11
<?php
$ruta
= "localhost";
$login
= "mi_login";
$password = "mi_password";
$db
= "miBaseDatos";
$conexion = mysql_connect( $ruta, $login, $password)
or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
echo "conectado bravo!!!!!!";
mysql_close($conexion);
?>
Descargar
Ejecutar
Para generar esta sentencia desde PHP usaremos las siguiente funciones:
parmetros ruta, login y password. $ruta indica el sitio donde estaran nuestros
datos. La ruta localhost funciona regularmente cuando nos conectamos a un
servidor instalados en nuestra pc o aun servidor de paga.
La funcion mysql_query ejecuta una sentencia SQL.
La funcin mysql_close() nos lleva los datos de la memoria principal a un
almacenamiento secundario.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include('ruta.php');
$conexion = mysql_connect($ruta,$usuario, $password);
if(!$conexion) {
die('Imposible conexin al servidor: '. mysql_error());
}
$sentencia = 'CREATE DATABASE IF NOT EXISTS prograwe_miBD';
if (mysql_query($sentencia, $conexion)) {
echo 'Base de datos creada';
} else {
echo 'Error al crear la base de datos: '.mysql_error();
}
mysql_close($conexion);
?>
Descargar
El componente principal de una base de datos son las tablas, MySQL tiene
varios tipos de tablas, nosotros usaremos en este sitio las InnoDB, por razones
de integridad referencial y concurrencia.
Ao
Campen
Escudera
2011
Sebastian Vettel
2010
Sebastian Vettel
2009
Jenson Button
Brawn GP
2008
Lewis Hamilton
McLaren
2007
Kimi Raikkonen
Ferrari
2006
Fernando Alonso
Renault
2005
Fernando Alonso
Renault
2004
Michael Schumacher
Ferrari
2003
Michael Schumacher
Ferrari
2002
Michael Schumacher
Ferrari
2001
Michael Schumacher
Ferrari
2000
Michael Schumacher
Ferrari
funcin mysql_connect
La funcin mysql_select_db nos permite seleccionar la base de datos
(lnea 10)
mysql_query nos permite ejecutar un query a la base de datos (lnea 12)
Mediante la funcin mysql_close cerramos la conexin a la base de
datos.
?php
$query = "CREATE TABLE IF NOT EXISTS f1 (";
>
Descargar
?php
include('ruta.php');
$query = 'CREATE TABLE IF NOT EXISTS panamericanos (';
$query .= 'pais
CHAR(35)NOT NULL,';
$query .= ' oro INT DEFAULT 0,';
$query .= ' plata INT DEFAULT 0,';
$query .= ' bronce INT DEFAULT 0,';
$query .= ' total INT DEFAULT 0,';
$query .= ' PRIMARY KEY ( PAIS ) ) ENGINE = InnoDB;';
$conexion = mysql_connect( $ruta, $login, $password) or die(>mysql_error());
mysql_select_db( $db, $conexion ) or die(>mysql_error());
mysql_query($query, $conexion) or die(>mysql_error());
mysql_close($conexion);
>
Descargar
?php
include("ruta.php");
$conexion = mysql_connect( $ruta, $login, $password)
or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
mysql_query("INSERT INTO f1 VALUES (2011,'Sebastian Vettel','Red Bull Racing')",
$conexion) or die(mysql_error());
mysql_query("INSERT INTO f1 VALUES (2010,'Sebastian Vettel','Red Bull Racing')",
$conexion) or die(mysql_error());
mysql_query("INSERT INTO f1 VALUES (2009,'Jenson Button Brawn','GP')",
$conexion) or die(mysql_error());
mysql_query("INSERT INTO f1 VALUES (2008,'Lewis Hamilton','McLaren')",
$conexion) or die(mysql_error());
echo "Operacin exitosa";
mysql_close($conexion);
>
Descargar
?PHP
include('ruta.php');
$conexion = mysql_connect( $ruta, $login, $password) or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
$query = 'DELETE FROM panamericanos';
mysql_query($query, $conexion) or die(mysql_error());
$query = 'INSERT INTO panamericanos VALUES';
$query .= "('Estados Unidos','usa.png',92,79,65,236),";
$query .= "('Cuba','cuba.png',58,35,43,136),";
$query .= "('Brasil','brasil.png',48,35,58,141),";
$query .= "('Mxico','mexico.png',42,41,50,133),";
$query .= "('Canad','canada.png',30,40,49,119),";
...
$query .= "('Guyana','guyana.png',0,0,1,1),";
$query .= "('Panam','panama.png',0,0,1,1)";
mysql_query($query, $conexion) or die(mysql_error());
mysql_close($conexion);
echo 'Operacin exitosa';
>
Descargar
?php
if ( isset($_POST['aceptar']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
$year
= $_POST['year'];
$campeon = $_POST['campeon'];
$escuderia = $_POST['escuderia'];
if(!(isset($year) && !empty($year)
&& isset($campeon) && !empty($campeon)
&& isset($escuderia) && !empty($escuderia)
)
) {
echo "Todos los campos son necesarios";
} else {
$n = date('Y'); // Obtiene el ao actual
if ($year >= 1950 and $year <= $n) { //F1 inicio en 1950
include('ruta.php');
$conexion = mysql_connect( $ruta, $login, $password) or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
$query = "SELECT * FROM f1 WHERE year = $year";
$registros = mysql_query($query, $conexion) or die(mysql_error());
$n
= mysql_num_rows($registros);
if($n == 0) {//Checamos que no exista informacin para ese ao
$query = "INSERT INTO f1 VALUES ($year, ";
$query .= "'$campeon','$escuderia')";
$resultado = mysql_query($query, $conexion);
if(!$resultado) {
echo 'Ocurrio un error al insertar'. mysql_error();
} else echo 'Operacin realizada con xito';
} else echo 'Ya existe informacin para ese ao'; //Un solo campen por ao
mysql_close($conexion);
} else echo 'Ao fuera de rango';
}
>
Descargar
Ejecutar
<?php
include("ruta.php");
$conexion = mysql_connect( $ruta, $login, $password)
or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
$query = "SELECT * FROM f1 ORDER BY year DESC";
$registros = mysql_query($query, $conexion) or die(mysql_error());
$n = mysql_num_rows($registros);
mysql_close($conexion);
if ($n > 0) { // si hay registros
$html = '<center><h2>Campeones de Formula 1</h2></center>';
$html.= '<table>';
$html.= '<thead><tr><th>Ao</th><th>Campen</th>';
$html.= '<th>Escudera</th></tr></thead>';
while ($registro = mysql_fetch_assoc($registros)) {
$html.= '<tr>';
$html.= '<td>'. $registro['year'].'</td>';
$html.= '<td>'. $registro['campeon'].'</td>';
$html.= '<td>'. $registro['escuderia'].'</td></tr>';
} $html.= '</table>';
echo $html;
} ?>
Descargar
Ejecutar
?php
include('postal.php');
$conexion = mysql_connect( $ruta, $login, $password) or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
$query
= 'SELECT estado, ruta FROM estados ORDER BY estado';
$registros = mysql_query($query, $conexion) or die(mysql_error());
$n
= mysql_num_rows($registros);
mysql_close($conexion);
if ($n > 0) { // si hay registros
$html = '<center><h2>Estados de Mxico</h2></center>';
$html.= '<table><thead>';
$html.= '<tr><th>Estado</th><th>Escudo</th></tr>';
while ($registro = mysql_fetch_assoc($registros)) {
$html.= '<tr><td>';
$html.= $registro['estado'];
$html.= "</td><td><img src='";
$html.= $registro['ruta'];
$html.= "' height='50' width='50' /></td></tr>";
}
echo $html.'</table>';
}
?>
Descargar
Ejecutar
?php
include(0ruta.php');
$conexion = mysql_connect( $ruta, $login, $password) or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
$query
= 'SELECT * FROM campeonesNBA ORDER BY temporada DESC';
$registros = mysql_query($query, $conexion) or die(mysql_error());
$n
= mysql_num_rows($registros);
mysql_close($conexion);
if ($n > 0) { // si hay registros
$html = '<center><h2>Campeones NBA</h2></center>';
$html.= '<table>';
$html.= '<thead><tr><th>Temporada</th><th>Campen</th>';
$html.= '<th>Marcador</th>';
$html.= '<th>Marcador</th><th>SubCampen</th></tr></thead>';
while ($registro = mysql_fetch_assoc($registros)) {
$html.= '<tr>';
$html.= '<td>'. $registro['temporada'].'</td>';
$html.= '<td>'. $registro['campeon'].'</td>';
$html.= '<td>'. $registro['ganador'].'</td>';
}
$html.= '</table>';
echo $html;
>
Descargar
Ejecutar
?php
if( isset($_POST['enviar']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
include('0311paises.inc');
function consultas( $continente ) {
switch ($continente) {
case 1: $continent = "frica"; break;
case 2: $continent = "Amrica"; break;
case 3: $continent = "Asia"; break;
case 4: $continent = "Europa"; break;
case 5: $continent = "Oceana"; break;
case 6: $continent = "Los pases del Mundo"; break;
}
$queryT = 'SELECT COUNT(*) paises, SUM(superficie) superficie,';
$queryT.= 'SUM(poblacion) poblacion, poblacion/superficie densidad FROM pais';
if($continente == 6) {
$query = 'SELECT * FROM pais ORDER BY densidad DESC, nombre';
} else {
$query = "SELECT * FROM pais WHERE idContinente = $continente ";
$query .= 'ORDER BY densidad DESC, nombre';
$queryT.= " WHERE idContinente = $continente";
}
return array($query, $queryT, $continent);
}// Consultas
$continente = $_REQUEST['continente'];
list($query, $queryT, $continent) = consultas( $continente );
$conexion = mysql_connect($ruta, $login, $password);
mysql_select_db( $db, $conexion );
$registros = mysql_query($query, $conexion) or die(mysql_error());
$registrosT = mysql_query($queryT, $conexion) or die(mysql_error());
$n
= mysql_num_rows($registros);
mysql_close($conexion);
if ($n > 0) { // si hay registros
$html = "<p class='centrado'><h1>$continent</h1><br />";
$html.= '<table class="stripeMe">';
$html.= '<thead><tr>';
$html.= '<th>Nombre</th>';
$html.= '<th>Capital</th>';
$html.= '<th>Superficie<br />Km<sup>2</sup></th>';
$html.= '<th>Poblacin<br />Habitantes</th>';
$html.= '<th>Densidad<br />Hab/Km<sup>2</sup></th>';
$html.= '<th>Bandera</th>';
$html.= '</tr></thead>';
while ($registro = mysql_fetch_assoc($registros)) {
$html.= '<tr>';
$html.= '<td>'. $registro['nombre'].'</td>';
$html.= '<td>'. $registro['capital'].'</td>';
$html.= '<td class="derecha">'.number_format($registro['superficie']).'</td>';
$html.= '<td class="derecha">'.number_format($registro['poblacion']).'</td>';
$html.= '<td >'.number_format($registro['densidad'],2,'.',',').'</td>';
$html.= "<td class='center'><p class='centrado'><img src='banderas/";
$html.= $registro['nombre'].".jpg' /></p></td></tr>";
}
$html.= '</table><br />';
$html.= '<table class="stripeMe">';
$html.= '<thead><tr>';
$html.= '<th>Continente</th>';
$html.= '<th>Pases</th>';
$html.= '<th>Superficie<br />Km<sup>2</sup></th>';
$html.= '<th>Poblacin<br />Habitantes</th>';
$html.= '<th>Densidad<br />Hab/Km<sup>2</sup></th>';
$html.= '</tr></thead>';
$html .= '<tbody';
while ( $registro = mysql_fetch_assoc($registrosT) ) {
$html .= '<tr><td>'. $continent.'</td>';
$html .= '<td class="derecha">'. $registro['paises'].'</td>';
$html .= '<td class="derecha">'. number_format($registro['superficie']).' </td>';
$html .= '<td class="derecha">'. number_format($registro['poblacion']).'</td>';
$html .= '<td >'. number_format($registro['densidad'],2,'.',',').'</td></tr>';
}
$html .= '</tbody></table><br />';
$html .= '<div><a href="0311paises.php"><br />REGRESAR</a></div>';
echo $html;
}
} else {
?>
<form id='forma' name='forma' method='post' action='0311paises.php'>
<p class='centrado'><strong>Selecciona el continente</strong></p>
<p class='centrado'>
<select name='continente' id='continente'>
<option value='1' selected='selected'>frica</option>
<option value='2'>Amrica</option>
<option value='3'>Asia</option>
<option value='4'>Europa</option>
<option value='5'>Oceana</option>
<option value='6'>Todos los pases</option>
</select>
</p>
<div>
<input type='submit' name='enviar' id='enviar' value='Enviar' />
</div>
</form>
<?
>
Descargar
Ejecutar
Paginacin
body>
<h2><p class="centrado">Campeones NBA</p></h2>
<table class="zebra">
<thead>
<th>Temporada</th>
<th>Campen</th>
<th>Ganador</th>
<th>Perdedor</th>
<th>Subcampen</th>
</thead>
?php
//Autor libreria: Marco A. Madueo Meja
require_once('lib/PHPPaging.lib.php');
// Apertura de la conexin a la base de datos e Inclusin del script
include('ruta.php');
>
/body>
Descargar
Ejecutar
Ejemplo: Precio del dlar con respecto al peso Mexicano desde 1995 a la
fecha
?
?php
//Autor libreria: Marco A. Madueo Meja
require_once('lib/PHPPaging.lib.php');
include('ruta.php');
$conexion = mysql_connect($ruta, $login, $password);
mysql_select_db($db, $conexion);
$paging = new PHPPaging( $conexion );
// Instanciamos el objeto
>
}
$html.= '</table>';
$html.= "<div class='pagination'><b>Navegacin</b>: ".$paging->fetchNavegacion()."</div>";
echo $html;
Descargar
Ejecutar
body>
<h3 align='center'>Medallero Panamericano</h3>
<h3 align='center'>Guadalajara, Mxico 2011</h3>
<table class='stripeMe'>
<thead>
<th>Pos</th>
<th>Pas</th>
<th><img src="panamericanos/oro.png" alt='Oro' title='Oro' /></th>
<th><img src="panamericanos/plata.png" alt='Plata' title='Plata' /></th>
<th><img src="panamericanos/bronce.png" alt='Bronce' title='Bronce' /></th>
<th>Total</th>
</thead>
?php
//Autor libreria: Marco A. Madueo Meja
require_once('lib/PHPPaging.lib.php');
// Apertura de la conexin a la base de datos e Inclusin del script
include('ruta.php');
$conexion = mysql_connect($ruta, $login, $password);
mysql_select_db($db, $conexion);
>
// Instanciamos el objeto
$paging = new PHPPaging( $conexion );
// Indicamos la consulta al objeto
$paging->agregarConsulta('SELECT * FROM panamericanos ORDER BY id');
$paging->porPagina(10);
// Ejecutamos la paginacin
$paging->ejecutar();
// Imprimimos los resultados, para esto creamos un ciclo while
// Similar a while($registro = mysql_fetch_array($sql))
$html='';
while($registro = $paging->fetchResultado()) {
$html.= '<tr>';
$html.= '<td>'. $registro['id'].'</td>';
$html.= '<td>'. "<img src='panamericanos/".$registro['bandera']."' "." alt='' />";
$html.= $registro['pais'].'</td>';
$html.= '<td class="derecha">'. $registro['oro'].'</td>';
$html.= '<td class="derecha">'. $registro['plata'].'</td>';
$html.= '<td class="derecha">'. $registro['bronce'].'</td>';
$html.= '<td class="derecha">'. $registro['total'].'</td>';
$html.= '</tr>';
}
$html.= '</table>';
echo $html;
echo "<div class='pagination'><b>Navegacin</b>: ".$paging->fetchNavegacion()."</div>";
Descargar
Ejecutar
Modificar Formulario
Imprime Tabla
Imprime Formulario
<?php
function update_registro($ruta, $login, $password, $db, $year,
$campeon, $escuderia) {
$conexion = mysql_connect( $ruta, $login, $password) or
die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
$query = "UPDATE f1 SET year = $year, campeon = '$campeon', ";
$query .= "escuderia = '$escuderia' WHERE year = $year";
$registros = mysql_query($query, $conexion) or die(mysql_error());
mysql_close($conexion);
} // END update_registro
include("ruta.inc");
if(!isset($modificar) && !isset($aceptar)) {
imprime_tabla($ruta, $login, $password, $db);
} else if (isset($modificar)) {
unset($modificar);
$year = $_POST['rg'];
$conexion = mysql_connect( $ruta, $login, $password)
or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
$query
= "SELECT * FROM f1 WHERE year =$year";
$registros = mysql_query($query, $conexion) or die(mysql_error());
imprime_forma($registros, $conexion);
} else if ($aceptar) {
unset($aceptar);
$year
= $_POST['year'];
$campeon = $_POST['campeon'];
$escuderia = $_POST['escuderia'];
Borrar registros
Imprime Tabla
<?php
include("ruta.inc");
if( isset($_POST['eliminar']) && $_SERVER["REQUEST_METHOD"]
== "POST") {
unset($_POST['eliminar']);
// Obtener las llaves de registros a borrar
$borrar = $_POST['borrar'];
$n
= count($borrar);
if($n == 0) {
print ("<p>No elegiste registros para eliminar</p>");
print ("<p>[ <a href='0311borrarF1.php'>Eliminar ms
Registros</a> ]</p>");
} else {
$registros = implode(',', $borrar);
$query = "DELETE FROM f1 WHERE year IN (".$registros.")";
unset($borrar);
// Conectar con el servidor y la basede datos
$conexion = mysql_connect( $ruta, $login, $password) or
die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
mysql_query($query, $conexion) or die(mysql_error());
mysql_close($conexion); //Cerrar conexin
imprime_tabla();
}
} else {
if(!isset($nuevo)) {
iniciar();
$nuevo = 1;
}
imprime_tabla();
}
?>
Descargar
Ejecutar
3.12. Sesiones
Las sesiones bsicamente son varibles globales que nos permiten almacenar
datos que necesiten volver a ser usados en otros accesos a la pgina. Cuando
una persona entra a una pgina que utiliza sesiones automticamente se crea
un archivo de session en los archivos temporales del servidor y en este
archivo es donde se guardan los datos que nosotros necesitamos almacenar.
Otra razn por la que la sesiones suelen ser muy utilizadas es para
la autentificacin, determinando el acceso a la pgina segn alguna variable
especfica de la sesin.
funcin
Significado
session_start();
session_destroy();
session_unset();
session_id([nombre]);
Si no le proporcionamos ningn
parmetro nos da el identificador de
sesin; si le proporcionamos el
parmetro nombre cambia el valor del
identificador por el parmetro nombre.
session_name([nombre]);
session_get_cookie_params();
session_cache_limiter([cache_limiter]);
session_regenerate_id()
Actualiza el id de
uno ms reciente
session_encode();
session_decode(cadena);
session_save_path([path]);
funcin
Significado
sesin. El efecto solo dura en el script
actual.
Devuelve el nombre del mdulo que se
usa para realizar la gestin de
sesiones. Cuando se invoca un
parmetro se usa como nuevo gestor
de sesiones.
session_module_name([modulo]);
session_set_save_handler(open,close,read,write,destroy,gc);
Permite definir su propio manejador para almacenar la informacin asociada con
una sesin.De esta forma los datos pueden ser metidos en una base de datos en
vez de en un archivo. Tenemos que pasarle como parmetro toda la informacin
necesaria para crear y destruir sesiones.
En la lnea 2 se inicia la sesin - session_star() Declaramos una variable llamada usuario (lnea 3) de tipo session
Header nos envia a la pgina especficada (lnea 4)
?
1
<?php
@session_start();
$_SESSION['usuario'] = 'ProgramacionWEB';
header('location:0312InicioSesiona.php');
?>
Ejecutar
?
1
<?php
@session_start();
if($_SESSION['usuario'] == 'ProgramacionWEB') {
unset($_SESSION['usuario']);
} else echo 'Te equivocaste';
6
7
?>
Descargar
<?php
$nombre_anterior = session_id();
($_SESSION['visitas'])
? >$_SESSION['visitas']++: $_SESSION['visitas'] = 1;
?>
Descargar
Ejecutar
Note que en realidad este cdigo cuenta el nmero de veces que recargamos
la pgina durante la sesin
En esta seccin crearemos una forma de autentificacin que puede ser usada
en mltiples situaciones
?
1
5
6
0312Sesion.php
<?php
session_start(); // Iniciar sesin
if (isset($_SESSION['usuario'])) {
header('Location: 0312SesionPaginaSegura.php');
?>
<table border='0'>
10
11
action='0312SesionLogin.php'>
<tr><td>Usuario</td><td>:</td><td><input name='usuario'
type='text' size='25' maxlength='25'></td></tr>
12
13
<tr><td>Password</td><td>:</td><td><input name='password'
type='password' size='25' maxlength='25'></td></tr>
14
15
16
17
<tr><td></td><td></td><td><input name='login'
type='submit' id='login' value='Accesar'></td></tr>
</form>
</table>
18
Descargar
Ejecutar
0312SesionLogin.php
mysql_real_escape_string
cadena para ser usado en una sentencia SQL para evitar la inyeccin de cdigo
SQL
La variable de sesin usuario se define si la consulta regresa un nico
registro.
Si
pagna 0312SesionPaginaSegura.php
De no ser un usuario registrado la lnea 20 nos envia a la pgina
somos
usuarios
registrados
nos
envia
la
de 0312Sesion.
?
1
<?php
include('ruta.php');
6
7
8
9
10
11
12
or die(mysql_error());
mysql_select_db( $db, $conexion ) or die(mysql_error());
$sql = "SELECT * FROM usuarios WHERE (usuario = '";
$sql .= mysql_real_escape_string($_POST['usuario']);
$sql .= "') and (password = '"
$sql .= mysql_real_escape_string(md5($_POST['password']))."')";
$resultado = mysql_query($sql, $conexion);
// Checa el usuario y el password
13
$nr = mysql_num_rows($resultado);
14
mysql_close($conexion);
15
if ($nr == 1) {
16
17
$_SESSION['usuario'] = $_POST['usuario'];
18
19
header('Location: 0312SesionPaginaSegura.php');
20
} else {
21
22
header('Location: 0312Sesion.php');
23
24
}
?>
25
0312SesionPaginaSegura.php
<?php
header('Location: 0312Sesion.php');
} else session_unset('usuario');
7
8
9
10
11
12
13
14
<html>
<head>
<title>Pgina segura</title>
</head>
15
<body>
16
17
18
19
<p><a href='0312SesionLogout.php'>Desconectarse</a></p>
20
21
</body>
</html>
22
0312SesionLogout.php
Esta pgina destruye las variables de sesin, la misma sesin y nos reenvia
automticamente a la pgina 0312Sesion.php.
?
1
<?php
session_start();
session_unset();
session_destroy();
header('Location: 0312Sesion.php');
?>
3.13. Seguridad
Filtrado de datos
Funcin
Descripcin
filter_var
filter_input
Ejemplo de filter_has_var
La sintaxis es:
filter_has_var(tipo, variable)
Parmetro
Descripcin
Requerido. especfica el tipo que deseamos checar. Los posibles
tipos son:
INPUT_GET
tipo
variable
INPUT_POST
INPUT_COOKIE
INPUT_SERVER
INPUT_ENV
<body>
<table>
<tr><td>Nombre del Filtro</td><td>ID</td></tr>
<?php
foreach( filter_list() as $id =>$filter) {
echo "<tr><td>".$filter.'</td><td>';
echo filter_id($filter).'</td></tr>'."\n";
}
?>
</table>
</body>
Descargar
Ejecutar
La validacin de datos es una parte integral del trabajo con formularios. Datos
vlidos los datos presentados pueden dar lugar a problemas de seguridad
Futuro colega*
Estatura*
Peso*
metros
(40 a 150 kg)
url*
Por ejemplo: http://www.itver.edu.mx
email*
ip*
Reiniciar
<?php
if (filter_has_var(INPUT_POST, 'enviar')) {
$colega = filter_input(INPUT_POST, 'colega',
FILTER_SANITIZE_STRING);
incluye
bloque
cdigo
de la
Ejemplo
<script type="text/javascript">
document.write("Este es mi primer JavaScript!");
</script>
Descargar
Ejecutar
Se pueden crear todos los archivos JavaScript (*.js) que sean necesarios y
cada documento XHTML puede enlazar tantos archivos JavaScript como
necesite.
Adems del atributo type, este mtodo requiere definir el atributo src, que es el
que indica la URL correspondiente al archivo JavaScript que se quiere enlazar.
Ejemplo
ejemplo el archivo js01.js, pero en una misma pgina se pueden incluir tantas
etiquetas <script></script> como sean necesarias (lnea 5).
El cdigo hace uso de este archivo en la lnea 9 <body
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<title>Ejemplo de código JavaScript en
documento externo</title>
<script type="text/javascript"
src="0401js02.js"></script>
</head>
<body onload='inicio()'>
</body>
Descargar
Ejecutar
Los archivos de tipo JavaScript son simples documentos de texto con la
extensin js que se pueden crear con cualquier editor de texto como Notepad,
Wordpad, UltraEdit, Vi, etc.
Variables
Las variables o identificadores se utilizan para almacenar valores en un
programa; cada variable tiene un nombre que permite referenciarla, nombre
que se da en base a unas reglas. En JavaScript un nombre o identificador debe
comenzar siempre con una letra o un subrayado; los siguientes caracteres
pueden ser dgitos o letras; y nunca se puede usar una palabra reservada
como identificador (por ejemplo: true, false, null yundefined).
Una variable se puede declarar en JavaScript, de dos formas:
Tipos de variables
Variables numricas
El otro valor especial definido por JavaScript es NaN, cuyo nombre viene de
Not a Number. De esta forma, si se realizan funciones matemticas con
variables no numricas, el resultado ser de tipo NaN.
Para manejar los valores NaN, se utiliza la funcin relacionada isNaN(), que
devuelve true si el parmetro que se le pasa no es un nmero:
var variable1 = 3;
var variable2 = 'hola';
isNaN(variable1); // false
isNaN(variable2); // true
isNaN(variable1 + variable2); // true
Cadenas de texto
\t
Un tabulador
\\
Son un tipo de variables que solo pueden tomar uno entre dos valores
especiales que representan el valor verdadero y el valor falso.
var variable1 = true;
var variable2 = false;
NaN
34
34
34
NaN
34.0
34.0
34.23
Palabras reservadas
delete
function
return
typeof
case
do
if
switch
var
catch
else
in
this
void
continue
finally
instanceof
throw
while
default
for
new
try
with
double
implements
private
throws
boolean
enum
import
protected
transient
byte
export
int
public
volatile
extends
interface
short
class
final
long
static
const
float
native
super
debugger
goto
package
synchronized
Constantes
const x = 48;
Las reglas de mbito [scope] para constantes son las mismas que para las
variables, excepto que la palabra clave const es siempre requerida, incluso
para constantes globales. Si la palabra clave es omitida, se asume que el
identificador representa a una variable.
Expresiones
Operadores
Operador de asignacin.
Un operador de asignacin asigna un valor a su operando izquierdo basndose
en el valor de su operando derecho. El operador bsico de asignacin es el
igual (=), el cual asigna el valor de su operador derecho a su operador
izquierdo. Esto es, x = y asigna el valor de y a x.
x=x+y
x -= y
x=x-y
x *= y
x=x*y
x /= y
x=x/y
x %= y
x=x%y
Operadores de comparacin
Si dos operandos no son del mismo tipo, JavaScript intentar convertir los
operandos a un tipo apropiado para la comparacin, excepto para los
operandos === y !==. Esto acostumbra a resultar en una comparacin
numrica. La tabla a continuacin describe los operadores de comparacin.
Operadores de comparacin.
Operador
Ejemplos que
devuelven verdadero1
Descripcin
3
"3"
3 == '3'
==
==
Igual
(==)
Distinto
(!=)
var1
var1
!=
!==
"3"
>
Mayor o igual
true si el operando izquierdo es var2
>=
que
mayor o igual que el derecho.
var1 >= 3
(>=)
true si el operando izquierdo es var1
menor que el derecho.
"12" < "2"
var1
var1
Menor
(<)
que
<
var2
Menor
igual
(<=)
o
true si el operando izquierdo es var1
<=
que
menor o igual que el derecho.
var2 <= 5
var2
Operadores aritmticos
Los operadores aritmticos toman valores numricos (tanto literales como
variables) como operandos y devuelven un nico valor numrico. Los
operadores aritmticos estndar son el de suma (+), el de resta (-), el de
multiplicacin (*) y el de divisin (/). Estos operadores trabajan igual que en la
mayora de lenguajes de programacin, excepto el operador / que devuelve la
divisin real (de coma flotante), no la divisin entera como sucede en C o en
Java.
Operador
Significado
Suma
Resta
Operador
Significado
Multiplicacin
Divisin
Mdulo
++
Incremento en uno
--
Decremento en uno
Negacin
Por ejemplo:
1/2 //devuelve 0.5 en avaScript
1/2 //devuelve 0 en Java
Operadores lgicos
Los operadores lgicos son generalmente empleados con valores lgicos
(booleanos); estos operadores devuelven un valor booleano. Sin embargo, los
operadores && y || realmente devuelven el valor de uno de sus operandos, por
esto si se emplean con valores no booleanos, podran devolver un valor no
booleano. Los operadores lgicos se describen en la siguiente tabla.
Operadores lgicos. Dado x = 6 y y = 7
Operador
Uso
Descripcin
Ejemplo
&&
and
||
expr1 || expr2
or
!expr1
not
!(x==y) es true
Sentencias condicionales
switch
function horoscopos(){
var opcion = document.forma.horoscopo.selectedIndex;
var signo = new Array('Acuario','Aries', . . .,'Virgo');
var fecha = '';
var caracter = '';
switch (opcion) {
case 0: fecha = '21 de Enero a 19 de Febrero';
caracter = 'Signo de Aire, humanitario, . . . ';
break;
case 11: fecha = '24 de Agosto a 23 de Septiembre';
caracter = 'Signo de Tierra, . . .';
break;
}
fecha = signo[opcion] + ' del ' + fecha;
document.getElementById("fecha").innerHTML = fecha;
document.getElementById("caracter").innerHTML = caracter;
Ciclos
do..while: Como mnimo siempre se ejecutar el cuerpo del bucle una vez, en
el bucle while es posible que no se ejecute ni una sola vez el contenido de
este.
[inicializacin;]
do{
cuerpo;
[iteracin;]
}while(condicin);
for: Es el ciclo ms comn, en el una variable se fija a un valor inicial, que se
actualiza con cada ciclo, y cuando el valor cumple una determinada condicin,
el ciclo se termina. La sintaxis del ciclo es:
for ([inicializacin]; [condicin]; [expresin] ){
Instruccin o bloque de instrucciones;
}
Hay dos formatos ms de ciclos for, aunque no todas se aplican en todos los
navegadores y se expondrn en incisos posteriores.
break: La sentencia break se puede colocar dentro de un ciclo o ciclos
anidados. Cuando se ejecuta la sentencia break se abandona el ciclo ms
interno. A todos los efectos la sentencia break acta como un salto a la
instruccin siguiente al ciclo en el que se ejecuta.
continue: La sentencia continue, no abandona el ciclo si no hace que se
ejecute la siguiente iteracin. En el ciclo while la ejecucin del continuehace
que el flujo del programa salte a la condicin. En el bucle for la ejecucin
del continue ejecuta la expresin de incremento (decremento), para despus
continuar normalmente con la condicin. Es decir, la ejecucin
del continue evita que se ejecute durante una interaccin el resto del cuerpo
del ciclo.
Funciones
Una funcin es un bloque de cdigo con un nombre. Cada vez que se usa el
nombre, se llama a la funcin y el cdigo de la funcin es ejecutado. Las
funciones pueden llamarse con valores, conocidos como parmetros, que se
usan como variables.
Los parmetros de una funcin se pasan por valor, los arrays se pasan por
referencia.
Solucin:
var i = 0;
var aux = Math.pow(10, cantDecimales);
numero = Math.round(numero * aux) /aux;
}
return numero;
}
Serie de Taylor
Los ngulos toman valor entre 0 y 360 grados. Lo cual logramos calculando
el mdulo de 360. As 370 grados es igual a 10 grados.
var n = 0;
var m = 0;
while (Math.abs(anterior - nuevo) >= error) {
n = 2 * m;
anterior = nuevo;
nuevo += Math.pow(-1,m)/factorial(n)
* Math.pow(x, n);
++m;
}
return nuevo;
}
Impresin de resultados
function calcular() {
var x = document.getElementById('grados').value;
var dec = 5;
var senox = decimal(seno( x ), dec);
var cosenox = decimal(coseno( x ), dec);
document.getElementById('senox').innerHTML = senox;
document.getElementById('cosenox').innerHTML =
cosenox;
}
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf8' />
<title>Serie de Taylor</title>
<script type='text/javascript' src='0401js05.js'></script>
<link href='0401js05.css' rel='stylesheet' type='text/css' />
</head>
<body>
<form id='forma' name='forma' action='' method='post' >
<fieldset>
<ul>
<li>
<label for='grados'>Grados</label>
<input name='grados' type='text' id='grados' value=''/>
</li>
<li>
<label for='senox'>Seno x: </label>
<p id='senox'></p>
</li>
<li>
<label for='cosenox'>Coseno x: </label>
<p id='cosenox'></p>
</li>
<li>
<p><input type='button' name='enviar' id='enviar'
value='Enviar' onclick='calcular()' /></p>
</li>
</ul>
</fieldset>
</form>
</body>
Descargar
Ejecutar
write
html
JavaScript
Descargar
Ejecutar
<body>
<script language='JavaScript'>
var mensaje = 'Hola mis estimados y finos alumnos!. Buen dia';
mensaje = mensaje.toUpperCase().bold().italics();
mensaje = mensaje.fontsize(6).fontcolor('red');
document.write(mensaje);
if ( confirm('Abrir HomePage del curso?') )
window.open('http://www.prograweb.com.mx/pweb/index.html',
'_self');
</script>
</body>
Descargar
Ejecutar
<head>
<script language='javascript'>
function saludo() {
var horario = new Date()
var hora = horario.getHours();
if( hora < 12 ) { var mensaje = 'Buenos dias!';}
else if (hora >= 12 and hora <= 19) {
var mensaje = 'Buenas tardes!';
} else {
var mensaje = 'Buenas noches!';
}
mensaje = 'Hola Mundo. ' + mensaje;
return mensaje;
}
</script>
</head>
<body>
<script language='javascript'>
document.write( saludo() );
</script>
</body>
Descargar
Ejecutar
ejemplo: form
Modifica el valor del elemento indicado que esta contenido en una forma.
HTML
JavaScript
<head>
<link href='0402almaMater.css' rel='stylesheet' type='text/css' />
<script language='javascript' type='text/javascript'
src='0402almaMater.js'></script>
</head>
<body>
<form>
<table class='tablaSinBorde'><tr>
<td><a href='#' onclick='mostrar(1)' onmouseout='mostrar(0)'>
<img src='../../images/colpos.gif' /></a></td>
<td><a href='#' onclick='mostrar(2)' onmouseout='mostrar(0)'>
<img src='../../images/escudoITV.png' /></a></td>
<td><a href='#' onclick='mostrar(3)' onmouseout='mostrar(0)'>
<img src='../../images/UV2.jpg' /></a></td>
</tr></table><form id='forma' name='forma' method='post'
action='#'>
<p id='contenedor' class="centrado"></p>
</form>
</body>
Descargar
Ejecutar
getElementById
}
</script>
</head>
<body>
<p id='parrafo'>Mis colores favoritos. Adivina por qu?</p>
<button onclick = 'cambiarColor('blue');'>Azul</button>
<button onclick = 'cambiarColor('red');'>Rojo</button>
</body>
Descargar
Ejecutar
innerHTML
<body>
<div id='contenedor' name='contenedor'></div>
<script language='javascript' type='text/javascript'>
dias = new Array('Lunes','Martes','Mircoles','Jueves',
'Viernes', 'Sbado', 'Domingo');
HTML = '<ul>';
for(i = 0; i < dias.length; i++) {
HTML += '<li>' + dias[i] + '</li>';
}
HTML += '</ul>';
document.getElementById('contenedor').innerHTML = HTML;
</script>
</body>
Descargar
Ejecutar
Ejemplo: En matemticas, la sucesin de Fibonacci es la siguiente sucesin
infinita de nmeros naturales:
HTML
JavaScript
Ads not by this site
<head>
<script type='text/jscript' src='0402fibonacci.js'></script>
<link href='0402fibonacci.css' rel='stylesheet' type='text/css' />
</head>
<body>
<form id='forma' name='forma' method='post' action='#'>
<table class='tablaSinBorde'>
<tr>
<td colspan='2'><p align='center'>
<strong>Serie de Fibonacci</strong></p></td>
</tr>
<tr>
<td><strong>Elementos de la serie</strong></td>
<td><input name='n' type='text' id='n' size='2'
maxlength='2' /></td>
</tr>
<tr>
<td colspan='2'><p align='center'>
createElement( tag )
appendChild( tag )
El mtodo insertBefore tiene un comportamiento similar al de appendChield,
solo que el nodo agregado es puesto antes del padre. La sintaxis es
HTML
Javascript
HTML
JavaScript
<head>
<script type='text/javascript' src='0402createElement.js'>
</script>
</head>
<body>
<button onclick='sumarHijo();'>Sumar un nuevo elemento</button>
<div id='contenedor'></div>
</body>
Descargar
Ejecutar
(Lnea 7)
Asignamos al evento onclick del botn la funcin borrar y el pasamos como
par'ametro el nombre del propio botn
HTML
JavaScript
Descargar
Ejecutar
HTML
JavaScript
<head>
<title>Propiedad de los Objetos</title>
<link href='0402ObjectPropiedades.css' rel='stylesheet'
type='text/css' />
<meta http-equiv='content-type' content='text/html; charset=iso8859-1' />
<script type='text/javascript'
src='0402ObjectPropiedades.js'></script>
</head>
<body>
<form name='forma' method='post' action='#'>
<div align='center'>
Objeto:
<select name='objetos' id='objetos'
onChange='propiedades(window.document.forms[0]
[0].value)'>
<option value='document'>document</option>
<option value='event'>event</option>
<option value='history'>history</option>
<option value='location'>location</option>
<option value='navigator'>navigator</option>
<option value='screen'>screen</option>
<option value='window'>window</option>
</select>
</div>
</form>
<div id='contenedor' class='centrado'></div>
Descargar
Ejecutar
HTML
JavaScript
CSS
Ads not by this site
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso8859-1' />
<title>Row Rollover table</title>
<script type='text/javascript' src='0402tableruler.js'></script>
<script type='text/javascript'>
window.onload = function(){tableruler();}
</script>
<link href='0402tableruler.css' rel='stylesheet' type='text/css' />
</head>
<body>
<table class='ruler' summary='Campeones FIFA'>
<caption>Campeones FIFA (1930 - 2022)</caption>
<thead>
<tr>
<th>Ao</th>
<th>Lugar</th>
<th>Campen</th>
<th>Marcador</th>
<th>Subcampen</th>
</tr>
</thead>
<tfoot>
<tr>
Manejador
onAbort
El usuario interrumpe la
Image
carga de una imagen
onBlur
onChange
onClick
onDblClick
onDragDrop
El usuario arrastra y
suelta un objeto en la window
ventana
onError
La
carga
de
un
documento o imagen Image, window
produce un error
onFocus
onKeyDown
document,
Textarea
Image,
Link,
onKeyPress
El
usuario
mantiene document,
pulsada una tecla
Textarea
Image,
Link,
onKeyUp
El usuario
tecla
Image,
Link,
onLoad
El navegador termina la
Image, Layer, window
carga de una ventana
onMouseDown
libera
una document,
Textarea
Select,
Text,
Manejador
onMouseMove
El usuario
puntero
mueve
onMouseOut
onMouseOver
onMouseUp
onMove
onReset
El usuario
formulario
onResize
Se cambia el tamao de
window
una ventana o marco
onSelect
onSubmit
El usuario
formulario
onUnload
El usuario abandona
limpia
enva
el Ninguno
uno)
un
un
(debe
asociarse
Form
Form
window
</body>
Descargar
Ejecutar
</script>
</head>
<body>
<div align='center'>
<img src ='../img/Mujer.jpg' alt='Mujer' usemap='#mapa' />
<map name='mapa'>
<area shape='rect' coords='135,6,164,28'
onmouseover='escribe("Cabello")' />
</map>
</div>
<div class='codigoCorto'>
<p id='descripcion></p>
</div>
</body>
Descargar
Ejecutar
if(document.images) {
Desde un punto de vista tcnico, los Servicios Web ofrecen una manera ms
fcil de desarrollar aplicaciones a las que se requiera tener acceso a travs de
la Web. Es importante anotar que los servicios Web no resuelven todos
los requerimientos de integracin slo la habilidad de comunicarse con otros
mdulos de software a travs de la red pblica. Se requieren tecnologas
adicionales de integracin para manejar la integracin de datos, aplicaciones y
procesos del negocio. Tambin se requieren caractersticas de clase
empresarial para complementar los Servicios Web, permitindoles ser seguros
y escalables.
Desde el punto de vista del negocio, los Servicios Web le permiten a una
compaa concentrar los esfuerzos de desarrollo en los recursos
computacionales que le representan ganancia. Los modelos y relaciones
empresariales son desarrollados en la medida en que es necesario, los costos
de integracin son reducidos, las interacciones con otros mercados son
establecidas ms efectivamente, y las funciones del negocio son entregadas a
un conjunto ms amplio de clientes y asociados.
Provee una estructura de mensajes capaz de ser intercambiada sobre una gran
cantidad de protocolos de soporte. Este marco ha sido diseado con el fin de
que fuera independiente del cualquier modelo de programacin y otras
implementaciones de semnticas.
Ventajas
http://www.prograweb.com.mx/pweb/index.html