Escolar Documentos
Profissional Documentos
Cultura Documentos
Las páginas web dinámicas son páginas HTML generadas a partir de código escrito
en lenguajes de programación (scripts) que son ejecutados en el propio servidor
web.
Los scripts del lado del servidor generan un código HTML desde el propio servidor
web, este código HTML puede ser modificado, por ejemplo: en función de una
petición realizada por el usuario en una Base de Datos. Dependiendo de los
resultados de la consulta en la Base de Datos, se generará un código HTML u otro,
mostrando diferentes contenidos.
La programación web del lado del servidor es comúnmente usada para dar
interactividad a los sitios web que se conectan a bases de datos u otros almacenes
de datos, como se va a realizar en este curso.
Una de las principales ventajas de la programación del lado del servidor es la
habilidad de preparar la respuesta basada en los requerimientos del usuario,
derechos de acceso, o consultas en la base de datos.
Las páginas generadas en el servidor son útiles en muchas ocasiones. Con ellas se
puede hacer todo tipo de aplicaciones web. Desde agendas, foros, sistemas de
documentación, estadísticas, juegos, chats, etc. Son especialmente útiles en
trabajos que se tiene que acceder a información centralizada, situada en una base
de datos en el servidor, y cuando por razones de seguridad los cálculos no se
pueden realizar en la computadora del usuario.
Como desventajas se puede señalar que será necesario un servidor más potente y
con más capacidades que el necesario para las páginas del lado del cliente.
Además, estos servidores podrán soportar menos usuarios concurrentes, porque
se requerirá más tiempo de procesamiento para cada uno. El hecho de que la
ejecución se realice en el servidor usualmente resulta en una sobrecarga por las
múltiples llamadas o peticiones de los clientes.
Las páginas dinámicas nos pueden ayudar a administrar más fácilmente los
contenidos del sitio web y a interactuar con Bases de Datos. Por ejemplo, si
tenemos uno o varios menús en nuestras páginas, y queremos modificarlos, no
tendremos que ir página por página editándolos, sino que bastará hacerlo una sola
vez. En el resto de las páginas, bastará incluir (en PHP, por ejemplo):
include 'menu-izquierda.html';
Además, todos los lenguajes script disponen de componentes para la conexión con
la mayoría de los Sistemas Manejadores de Bases de Datos (mySQL, Oracle, SQL
Server, y otros más). Esto nos puede servir para almacenar los contenidos dentro
de una Base de Datos, en lugar de realizar cada página web una por una.
ASP: Lenguaje script creado por Microsoft para su servidor web 'Internet
Information Server' (IIS), y basado en 'Visual Basic Script'. La última versión
'ASP.net' forma parte del Framework '.net'.
CGI: Abreviatura de 'Common Gateway Interface'. Se trata de un estándar
para la interacción entre aplicaciones externas y servidores web. Gracias a
ello, podríamos adaptar cualquier programa que hayamos realizado en
cualquier lenguaje para que interactúe con nuestro servidor. Sin embargo,
Perl se ha convertido en el lenguaje más popular para desarrollar
aplicaciones CGI, aunque también se suele utilizar C o C++.
JSP: Lenguaje script creado por Sun, basado en la tecnología Java. No es
necesario que el usuario disponga de la máquina virtual de Java ya que ésta
se encuentra en el servidor que crea las páginas HTML. Tiene poco que ver
que los 'applets' de Java, y nada que ver con PHP. Los scripts JSP son un
caso particular de los 'servlets'.
PHP: Lenguaje script de código abierto. Ampliamente utilizado sobre el
servidor web Apache.
?>
Usando las etiquetas:
<? ?>
Mediante
<script languaje="php">
</script>
2. Llega la solicitud
3. Una vez ejecutado 4. El servidor
del cliente y el
el código se genera el transfiere el
1. El navegador del servidor localiza el
resultado en HTML y resultado en HTML y
cliente solicita el documento, lanza el
lo devuelve al es mostrado en el
documento PHP. intérprete de PHP y
servidor para que lo navegador del
ejecuta todo su
transfiera al cliente. cliente.
codigo.
3. VARIABLES
Una variable podría definirse como un espacio de memoria creada para almacenar
un dato.
En PHP (al igual que en JavaScript) no hace falta declarar la variable ya que
simplemente anteponiendo el caracter $ al nombre de la variable estamos
indicando que es una variable.
Los tipos de datos posibles que puede almacenar una variable son los siguientes:
+, -, * y / Operaciones básicas
% Resto de dividir dos valores
++ y -- Incremento o decremento en una unidad
7.1. ESTRUCTURA IF
o
foreach (expresión_array as $Indice => $valor)
sentencias
8. ARRAYS
Un array es una variable en la que podemos guardar varios datos o variables
agrupados a la vez. Estos forman una lista, la cual tiene un único nombre.
Ejemplos:
$semana = [los días de la semana]
$meses = [los nombres de los meses]
$clientes = [los nombres de los clientes]
TIPOS DE ARRAYS
Array Indexado.
Array Asociativo.
Array Multidimensional
LEER UN ARRAY
Significa que, a cada elemento del array le corresponde un número.
Se empieza a contar desde 0, para el primer elemento. Al último elemento
de un array de n elementos le corresponderá el número n-1.
$nombreArray[num_elemento].
MOSTRAR UN ARRAY
echo "$nom_array[0], $nom_array[1], $nom_array[2],
$nom_array[3].";
Ejemplo
$dia=array("dom"=>"Domingo","lun"=>"Lunes", ...
,"sab"=>"Sabado");
Ejemplo
echo $dia[sab];
FUNCION EACH
En principio llamamos a la función each($miarray), y la guardamos en una
variable:
$verCap=each($cap);
Ahora la variable $verCap será un array que tendrá los siguientes elementos:
$verCap[0];// muestra el Índice del elemento.
$verCap[1];// muestra el valor del elemento.
$verCap["key"];// muestra el Índice del elemento.
$verCap["value"];// muestra el valor del elemento.
La función each puede aplicarse también con arrays indexados. En este caso
el Indice nos dará el índice del elemento.
INSTRUCCIÓN FOREACH
o
foreach (expresión_array as $Indice => $valor){
sentencias
}
$personas es el array
$persona es la Indice
La funcion foreach toma el array asociativo $personas y lo va recorriendo,
almacena en cada bucle la Indice dentro de la variable $persona y el valor
dentro de la variable $pais, posteriormente dentro del for imprimos los
resultados.
PHP permite el uso de arrays con dimensión superior a dos. Para modificar
la dimensión del array basta con ir añadiendo nuevos índices.
Ejemplo
Crear un array multidimensional indexado de 2x3 e imprimir sus datos en
orden.
$z=array(
0 => array (
0 => 34,
1 => 35,
2 => 36,
),
1 => array (
0 => 134,
1 => 135,
2 => 136,
)
);
Ejemplo
Crear un array multidimensional asociativo de 2x3 e imprimir sus datos en
orden.
Ejemplo
Crear un array multidimensional asociativo de nx3 con los datos de clientes
e imprimir sus datos en orden.
$datosArray = array(
.
.
.
9. FUNCIONES
Es un grupo de código asociado a un nombre esta puede ser una funci’’on cuando
devuelve un valor o procedimiento cuando no devuelve valor y solo realiza tareas.
Tipos de funciones
echo y print
El código PHP no se muestra en la página. Por eso, si queremos escribir
código HTML, debemos de hacerlo utilizando las funciones echo o print.
isset
La función isset($variable), comprueba si una variable ha sido definida.
Devuelve verdadero si lo ha sido y falso si no.
mail
La función mail envía un correo electrónico. Tiene la siguiente estructura:
mail("email_destino", "asunto", "cuerpo_mensaje");
include
strip_tags
Elimina el código HTML de una cadena:
strip_tags("<p class="a1">Hola <span>mundo</span></p>")
devuelve Hola mundo.
trim
Quita los espacios al principio y final de una cadena
trim(" Hola mundo "); //devuelve Hola mundo
ceil
Redondea un valor numérico a un entero mayor.
ceil(2.5) devuelve 3, ceil(2.1) devuelve 3
count
Devuelve el número de elementos que hay en un array.
header
Nos permite escribir la cabecera de la página.
header("Location: http://www.mipagina.com");
exit;
Esto se define en el atributo Method del tag Form y requiere de dos páginas,,
los datos se envían a través de la dirección URL:
POST
PRIMERA PÁGINA
<form action="programa.php" method="GET" id=”formulario”>
Nombre: <input type="text" name="nombre" />
Edad: <input type="text" name="edad" />
<input type="submit" value=”Procesar”>
</form>
SEGUNDA PÁGINA
<html> $_POST $_REQUEST[‘nombre’]
<body>
</body>
</html>
</html>
echo $a;
//Imprime el contenido de value
//Es decir imprime masculino o femenino
?>
PRIMERA PÁGINA
<html>
<head></head>
<body>
<form method="get" action="p2.php">
Mac OS
<input type="checkbox" name="sistema[]" value="mac"
checked="checked"/>
<br />Windows
<input type="checkbox" name="sistema[]" value="windows" />
<br />Apple
<input type="checkbox" name="sistema[]" value="linux" />
<br>
<input type="submit">
</form>
</body>
</html>
SEGUNDA PÁGINA
<?php
//Devuelve "sistema" como array y asignamos a $a
$a=$_GET['sistema'];
//Imprime array $a
echo "$a[0], $a[1], $a[2]"
?>
</body>
</html>
SEGUNDO FORMULARIO
<?php
//Devuelve el comentario
$a=$_GET['comentario'];
//Imprime el comentario
echo "$a"
?>
</body>
</html>
SEGUNDA PÁGINA
<?php
//Devuelve el Pais seleccionado
$a=$_GET['Pais'];
//Imprime el Pais
echo "$a"
?>
SEGUNDA PÁGINA
<?php
//Devuelve el Pais seleccionado
$a=$_GET['Pais'];
//Imprime el Pais
echo "$a[0], $a[1], $a[2], $a[3]"
?>
Una clase es una plantilla del que luego se pueden crear múltiples objetos,
con similares características.
Sintaxis
class [Nombre de la Clase] {
[atributos]
[métodos]
}
$per1=new Persona();
$per1->inicializar('Juan');
$per1->imprimir();
$per2=new Persona();
$per2->inicializar('Ana');
$per2->imprimir();
?>
</body>
</html>
Esto nos da una idea que si en una página WEB tenemos 2 menúes,
seguramente definiremos una clase Menu y luego crearemos dos objetos de
dicha clase.
Esto es una de las ventajas fundamentales de la Programación Orientada a
Objetos (POO), es decir reutilización de código (gracias a que está
encapsulada en clases) es muy sencilla.
<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
class CabeceraPagina {
private $titulo;
private $ubicacion;
public function __construct($tit,$ubi)
{
$this->titulo=$tit;
$this->ubicacion=$ubi;
}
public function graficar()
{
echo '<div style="font-size:40px;text-align:'.$this-
>ubicacion.'">';
echo $this->titulo;
echo '</div>';
}
}
Hasta ahora todos los problemas planteados hemos llamado a los métodos
desde donde definimos un objeto de dicha clase, por ejemplo:
Utilizamos la sintaxis:
[nombre del objeto]->[nombre del método]
Ahora bien que pasa si queremos llamar dentro de la clase a otro método
que pertenece a la misma clase, la sintaxis es la siguiente:
$tabla1=new Tabla(2,3);
$tabla1->cargar(1,1,"1");
$tabla1->cargar(1,2,"2");
$tabla1->cargar(1,3,"3");
$tabla1->cargar(2,1,"4");
$tabla1->cargar(2,2,"5");
$tabla1->cargar(2,3,"6");
$tabla1->graficar();
?>
</body>
</html>
Vamos por parte, primero veamos los tres atributos definidos,el primero se
trata de un array donde almacenaremos todos los valores que contendrá la
tabla HTML y otros dos atributos que indican la dimensión de la tabla HTML
(cantidad de filas y columnas):
private $mat=array();
private $cantFilas;
private $cantColumnas;
Lo que nos importa ahora ver es como llamamos a métodos que pertenecen
a la misma clase:
$tabla1=new Tabla(2,3);
$tabla1->cargar(1,1,"1");
$tabla1->cargar(1,2,"2");
$tabla1->cargar(1,3,"3");
$tabla1->cargar(2,1,"4");
$tabla1->cargar(2,2,"5");
$tabla1->cargar(2,3,"6");
$tabla1->graficar();
class Operacion {
protected $valor1;
protected $valor2;
protected $resultado;
public function cargar1($v)
{
$this->valor1=$v;
}
public function cargar2($v)
{
$this->valor2=$v;
}
public function imprimirResultado()
{
echo $this->resultado.'<br>';
}
}
$suma=new Suma();
$suma->cargar1(10);
$suma->cargar2(10);
$suma->operar();
echo 'El resultado de la suma de 10+10 es:';
$suma->imprimirResultado();
$resta=new Resta();
$resta->cargar1(10);
$resta->cargar2(5);
$resta->operar();
echo 'El resultado de la diferencia de 10-5 es:';
$resta->imprimirResultado();
?>
</body>
</html>
Ejercicios
1. Desarrolle una aplicación web para leer un valor de una temperatura en
grados celcius y convertirlo a grados Farengheith, Kelvin y Rankin.
2. Desarrolle una aplicación web para leer un número y mostrar su
equivalente en números romanos.
3. Elaborar una aplicación web para leer un numero, que representa el
monto de venta de un determinado empleado, calcular su sueldo neto
bajo la siguiente regla de negocio:
a) El sueldo básico es de 560.00 soles
b) Si las ventas del empleado superan los 500 soles, pero menor o
igual que 1000 soles recibe una bonificación del 3%.
c) Si las ventas del empleado superan los 1000 soles, pero menor o
igual que 1500 soles recibe una bonificación del 5%.
d) Si las ventas del empleado superan los 15000 soles, pero menor o
igual que 2200 soles recibe una bonificación del 8%.
e) Si las ventas del empleado superan los 2200 soles o más, recibe
una bonificación del 10%.
Sueldo neto = sueldo básico + bonificación.
4. Elaborar una aplicación web con PHP para hallar la suma de los N
primeros números enteros al cubo.
RESUMEN DE FUNCIONES
FUNCIONES DE FECHA Y HORA.
Gettimeofday Flecha Permite obtener la hora actual
gmdate Flecha Da formato a una fecha/hora GMT/CUT
gmmktime -> Obtiene el valor timestamp UNIX de una fecha GMT
gmstrftime -> Con esta función da formato a una fecha/hora GMT/CUT según las
convenciones locales.
microtime -> Devuelve el valor timestamp UNIX actual con microsegundos.
mktime -> Obtiene el timestamp UNIX de una fecha.
strftime -> Da formato a la hora o fehca local de acuerdo a a las convenciones locales.
time -> Devuelve la hora de la fecha actual en formato timestamp UNIX
strtotime -> Permite procesar cualquier descripción textual de fehca/hora en inglés,
convirtiéndola a timestamp de UNIX.
getdate -> Podemos obtener información de fecha y hora
checkdate -> Esta función verifica que la fecha sea válida, y su sintaxis es la siguiente.
FUNCIONES HTTP
header -> Envía una cabecera http
headers_list -> Nos devuelve una lista de cabeceras
headers_sent -> Verifica si ya se han enviado cabeceras, y donde.
setcookie -> Envía una cookie
FUNCIONES DE IMÁGENES
(Para varias de estas funciones debes tener instaladas las librerías GD)
GetImageSize -> Muesta el tamaño de una imagen Gif, JPG o PNG
ImageArc -> Dibuja una elipse parcial
ImageChar -> Dibuja un caracter de forma horizontal
ImageChatUp -> Dibuja un caracter de forma vertical
ImageColorAllocate -> Define un color para una imagen
ImageColorAt -> Obtiene el índice de color de un píxel
ImageColorClosest -> Obtiene el índice del color más cercano al color especificado
FUNCIONES MATEMÁTICAS
abs -> Valor absoluto
acos -> Arco coseno
acosh -> Coseno hiperbólico inverso
asin -> Arco seno
asinh -> Seno hiérbólico inverso
atan2 -> Arco tangente de dos variables
FUNCIONES DE RED
checkdnsrr -> Comprueba los registros DNS correspondientes a nombres de máquinas
en Internet o direcciones IP.
dns_get_record -> Recupera los registros de recursos DNS asociados con un nombre de
dominio.
fscokopen -> Abre una conección de dominio Internet o UNIX via sockets.
gethostbyaddr -> Muestra el nombre de un servidor mediante su dirección IP
gethostbyname -> Obtiene la direccion IP correspondiente al nombre de un servidor.
gethostbynamel -> Obtiene una lista de direcciones IP correspodneinte a los servidores.
getmxrr -> Obtiene los registros MX correspondientes a un dominio.
ip2long -> Convierte una cadena que contiene una dirección con puntos del Protocol en
una dirección apropiada.
long2ip -> Convierte una dirección de red Interenet a una cadena de formato estandar
en Internet con puntos.
syslog -> Genera un mensaje del sistema
FUNCIONES DE CADENAS
AddCSlashes -> Marca una cadena con barras al estilo del C de la forma \.
AddSlashes -> Marca una cadena con barras.
bin2hex -> Convierte datos binarios en su representación en hexadecimal.
chop -> Elimina los espacios en blanco al final de una cadena.
chr -> Devuelve un carácter específico sobre un número dado.
chunk_split -> Divide una cadena en trozos más pequeños.
convert_cyr_string -> Convierte de un juego de caracteres Cirílico a otro.
count_chars -> Muestra información sobre los caracteres usados en una cadena.
crc32 -> Calcula el polinomio crc32 de una cadena.
crypt -> Encripta una cadena mediante DES.
echo -> Imprime una o más cadenas.
explode -> Divide una cadena por otra.
fprintf -> Escribe una cadena con formato por una secuencia.
get_html_translation_table -> Devuelve la tabla de traducción utilizada por
htmlspecialchars() y htmlentities()
hebrev -> Convierte hebreo lógico a texto visual.
hrebevc -> Convierte ebrero lógico a texto visual con conversión de saltos de línea.
html_entity_decode -> Convierte todas las entidades HTML a sus respectivos
caraceteres.
htmlentitites -> Convierte los caracteres aplicables a entidades HTML.
implode -> Une elementos de un array mediante una cadena.
join -> Une elementos de una tabla en una cadena.
levenshtein -> Calcula la distancia levenshtein entre dos cadenas-
localconv -> Muestra información sobre el formato numérico.
FUNCIONES DE VARIABLES
doubleval -> Obtiene el valor double de una variable
empty -> Indica si una variable está definida.
floatval -> Obtiene el valor flotante de una variable.
get_defined_vars -> Devuelve un array con todas las variables definidas.
get_resource_type -> Devuelve el tipo de recurso.
gettype -> Muestra el tipo de una variable.