Documente Academic
Documente Profesional
Documente Cultură
Developer
Apache PHP MySQL
Yuri Jose Pando Fernandez
Programacin web
Desarrollo de aplicaciones que se
desplegarn teniendo como cliente a un
browser (navegador).
La aplicacin se ejecutar en el servidor,
recibiendo el cliente, los pantallazos en un
lenguaje comprensible por los
navegadores (html).
En la actualidad, programacin web,
requiere conocer otros lenguajes y/o
conceptos como HTML, Javascript,
DHTML, Ajax, PHP .etc.
Requisitos
Servidor WEB
Apache, IIS, Sambar, Roxen,
etc.
Lenguaje PHP
PHP 5.2.X o PHP 5.3.X (ambos
en vigencia)
Base de Datos
Mysql, PostgreSQL, Ms-SQL,
otras.
Estructura de las
Aplicaciones
Cliente Browser
Pedido de
pgina
Respuesta al cliente
en HTML
Apache
(Entrega HTML al
Browser)
PHP
Programacin para
obtener datos de la
base.
Base de Datos
Preliminares
Revisiones previas a la instalacin de
Apache Web Server
Servicios
localhost
PHP 5.2.0
PHP 5.2.14
PHP 5.3.0
PHP 5.3.3
Apache
Pequeas Teorias
http://www.apache.org
Apache
Programa que convierte a nuestra PC en
servidor WEB, capaz de atender
inicialmente pedidos de pginas HTML.
Producto sobre el cual descanza mas del
50% del contenido web de internet.
Multiplataforma: Windows, Linux
(Origen).
Brinda el servicio a travs del puerto 80,
pero se puede reconfigurar para otros
puertos.
Archivo de configuracin : httpd.conf (se
lee al iniciar apache)
Directorio de publicacin: htdocs (Aqu
debemos colocar los archivos para su
distribucin a los browser de los
clientes)
Algunos Parametros..
Accin
Cambio de Puerto
Parmetro
Listen 80
http://localhost
Listen XX
http://localhost:XX
Options -Indexes
DocumentRoot RUTA
<Directory RUTA> Configuracin adicional
</Directory>
</Directory>
http://localhost/url
Pgina 14
Apache
Instalando..
http://www.apache.org
Instalando Apache
Iniciamos el proceso de instalacin.
Instalando Apache
Instalando Apache
Descripcin de un servidor Apache.
Instalando Apache
Dominio:
php.uni
Server Name:
www.php.uni
Administrador Email:
admin@php.uni
Instalarse como
servicio usando el
puerto 80
Instalando Apache
Instalacin tpica.
Instalando Apache
Nuestro directorio de instalacin
Instalando Apache
Listo, instalando los archivos.
Instalando Apache
Instalacin completa.
Indicador de
estado del
apache
Instalando Apache
Primera prueba de funcionalidad de apache
web server.
Apache 2.2.X
Apache 2.0.x
Instalando Apache
Configurando Apache
Para poder cambiar la carpeta de almacenamiento de
las paginas cambiar en httpd.conf
<Directory c:/webdev>
PHP : (http://www.php.net)
Ventajas
Ventajas de PHP
Lenguaje multiplataforma.
Completamente orientado al desarrollo de aplicaciones web dinmicas.
El cdigo fuente es invisible para el navegador y el cliente, ya que se
ejecuta y el resultado HTML es enviado al browser.
Capacidad de conexin a mltiples bases de datos.
Capacidad de expansin a nivel de mdulos.
Es libre, opensource.
Permite tcnicas de Programacin Orientada a Objetos (POO).
No requiere definicin de tipos de variable.
Tiene manejo de excepciones.
Se integra con patrn de diseo MVC.
Paquetes Instaladores
Instalacin - PHP
Procedemos a descomprimir el PHP y renombrar.
Configurando PHP
Creamos una copia del archivo php.inidevelopment (php.ini- recomended), dndole
por nombre php.ini.
Que
es
el
PHP.INI
El archivo php.ini es el que contiene nuestra configuracin
Configurando PHP
Copie todas las DLL al directorio de sistema de
Windows. En el caso de Windows NT o 2000 se
encuentra en C:\winnt\system32 y en windows
Xp, en C:\windows\system32
Copie el archivo php.ini recommended al
%System-Root, que normalmente se
encuentra en c:\winnt o c:\winnt40 en
windows nt o 2000 o en c:\windows en
windows Xp. Y luego cambie su nombre por
php.ini
Modificando el PHP.ini
Modificando el PHP.ini
Para activar las extensiones basta con
eliminar el punto y coma, para lo cual
activar las extenciones: php_fdf.dll,
php_gd2.dll, php_imap.dll,
php_mysql.dll, php_mysqli.dll.
extension=php_mysqli.dll
Cierre y guarde los cambios de php.ini
Reinicie el Servidor Apache
Realizando Pruebas
Abrimos nuestro Editor de texto y
escribimos lo siguiente
Realizando Pruebas
Demo
Yuri Jos Pando Fernndez
Variables
Una variable es un contenedor de informacin, en el
que podemos meter nmeros enteros, nmeros
decimales, carcteres... el contenido de las variables
se puede leer y se puede cambiar durante la ejecucin
de una pgina PHP.
En PHP todas las variables comienzan con el smbolo
del dlar $ y no es necesario definir una variable antes
de usarla. Tampoco tienen tipos, es decir que una
misma variable puede contener un nmero y luego
puede contener carcteres.
Constantes
Son valores que se mantienen, no cambian a
Operadores Aritmeticos
Los operadores de PHP son muy parecidos a los de C y JavaScript, si
usted conoce estos lenguajes le resultaran familiares y fciles de
reconocer. Estos son los operadores que se pueden aplicar a las
variables y constantes numricas.
Operador
Nombre
Ejemplo
Descripcin
Suma
5 + 6
Resta
7 - 9
Multiplic
acin
6 * 3
Divisin
4 / 8
Mdulo
7 % 2
++
Suma 1
$a++
--
Resta 1
$a--
Descomposicin de
<?php
Nmeros
$num = 345;
echo $num."<br>";
$cent = floor($num / 100);
$resto = $num % 100;
$dece = floor($resto/10);
$unid = $resto % 10;
$res = ($unid * 100) + ($dece * 10) + $cent;
echo "El numero a la Inversa es ".$res;
?>
Operadores de
Los operadores de comparacin son usados
Comparacin
para comparar valores y as poder tomar
decisiones.
Operador Nombre
Ejemplo
Devuelve cierto
cuando:
==
Igual
$a == $b
$a es igual $b
!=
Distinto
$a != $b
$a es distinto $b
<
Menor que
$a < $b
$a es menor que $b
>
Mayor que
$a > $b
$a es mayor que $b
<=
Menor o igual
$a <= $b
>=
Mayor o igual
$a >= $b
Operadores Lgicos
Operador
Nombre
Ejemplo
&&
(7>2) &&
(2<4)
and
(7>2) and
(2<4)
||
(7>2) ||
(2<4)
or
(7>2) or
(2<4)
No
! (7>2)
Sentencias Condicionales
Sentencia Simple
Sentencia if ... Else
<?php
if (condicin)
condicin es cierta. }
else
condicin es falsa. }
?>
Demo
1
---<html>
<head>
Condiconal1.php
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
if ($a < $b)
{
echo "a es menor que b";
}
else
{
echo "a no es menor que b";
}
?>
</body>
</html>
Demo 2
<?php
Condicionales2.php
$edad = 19;
//if simple
if($edad>18)
{ echo "La Edad ".$edad." es Mayor de 18
aos<br>"; }
//if compuesto
if($edad>18)
{ echo "La Edad ".$edad." es Mayor de 18
aos<br>"; }
else
{ echo "La Edad ".$edad." es Menor de 18
aos<br>"; }
//if anidado
if($edad>18)
{ echo "La Edad ".$edad." es Mayor de 18
aos<br>"; }
elseif ($edad==18)
{ echo "La Edad ".$edad." es Igual a 18
Demo 3 Condicional2.php
<?php
//Se pide definir un mensaje de una nota dependiendo de la
sig. tabla:
// 0 - 5 --->Muy malo
6 - 10 ---> Malo
// 11 - 15 ---> Regular
16 - 20 ---> Bueno
$nota =5;
if (($nota>=0) && ($nota<=20))
{
if ($nota>=0 && $nota<=5)
echo "Su Nota es ".$nota." es Muy Mala";
elseif ($nota>=6 && $nota<=10)
echo "Su Nota es ".$nota." es Mala";
elseif ($nota>=11 && $nota<=15)
echo "Su Nota es ".$nota." es Regular";
elseif ($nota>=16 && $nota<=20)
echo "Su Nota es ".$nota." es Buena";
}
else
echo "la nota ".$nota." Ingresada esta fuera de Rango";
?>
Cond_Multiple1.php
Sentencia Compuesta
Sentencia SwitchCase
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$posicion = "arriba";
switch($posicion) {
case "arriba":// Bloque 1
echo "La variable contiene";
echo " el valor arriba";
break;
case "abajo":// Bloque 2
echo "La variable contiene";
echo " el valor abajo";
break;
default:// Bloque 3
echo "La variable contiene otro valor";
echo " distinto de arriba y abajo";
}
?>
</body>
</html>
Cond_Multiple2.php
<?php
$dia_num = 5;
switch ($dia_num){
case 1 : echo "Da Lunes <br>";break;
case 2 : echo "Da Martes <br>";break;
case 3 : echo "Dia Mircoles <br>";break;
case 4 : echo "Dia Jueves <br>";break;
case 5 : echo "Dia Viernes <br>";break;
case 6 : echo "Dia Sbado <br>";break;
case 7 : echo "Dia Domingo <br>";break;
default : echo "Fuera de Rango";
}
?>
Problema Planteado
- Ximena ha cobrado su sueldo de fin de mes,
del cual
tiene que pagar las sig. deudas:
12% Ripley, saga y metro
14% luz, agua, telfono
20% separa para comida y pasaje
150 soles le da entrega su mama
250 soles es la deuda de un crdito que paga
al
banco
- Su Hermano Jose, le dice que si su saldo del
sueldo es menor a 450 soles, le entregara
300 soles de
ayuda, Cuando le quedara de saldo a Ftima
Respuesta
<?php
Calculos.php(Parte
1)
echo "<table border=1>";
//carga de datos de sueldo
echo "<tr><td colspan=2>Calculo de Sueldo </td></tr>";
$sueldo = 1330;
echo "<tr><td>Sueldo fatima</td><td>".
$sueldo."</td></tr>";
echo "<tr><td colspan=2>Descuentos </td></tr>";
//descuentos
$desc1 = 0.12 * $sueldo;
$desc2 = 0.14 * $sueldo;
$desc3 = 0.2 * $sueldo;
$desc4 = 150;
$desc5 = 250;
echo "<tr><td>Ripley,Saga,Metros </td><td>".
$desc1."</td></tr>";
echo "<tr><td>Luz,Agua,Fono</td><td>".
$desc2."</td></tr>";
echo "<tr><td>Comida y Pasaje</td><td>".
Respuesta
//hallamos el SubTotal
Calculos.php(Parte
2)
$subTotal = $sueldo -($desc1 + $desc2 + $desc3 +
$desc4 +$desc5);
echo "<tr><td>Sub Total</td><td>".
$subTotal."</td></tr>";
//trabajando con el apoyo del hermano
echo "<tr><td
colspan=2>=====================</td></tr>
";
$apoyo = 0;
if ($subTotal < 450)
{ $apoyo=300; }
echo "<tr><td>Apoyo de Andre</td><td>".
$apoyo."</td></tr>";
echo "<tr><td
colspan=2>=====================</td></tr>
";
Bucles Sentencias
Los bucles nos permiten iterar conjuntos de
Repetitivas
instrucciones, es decir repetir la ejecucin
de un conjunto de instrucciones mientras se
cumpla una condicin.
Sentencia While
<?php
while (condicin)
{
intrucciones a ejecutar.
}
?>
Sentencia For
<?php
for (inicial ; condicin ; ejecutar en
iteracin)
{
intrucciones a ejecutar.
}
?>
Ejemplos Propuestos
Elabore un programa que me
muestre todos los numeros de 3
cifras, que cumplan las siguientes
condiciones:
1. Su primera cifra debe de ser multiplo
de 2
2. Su segunda cifra debe de ser
multiplo de 3
3. Las 3 cifras deben de ser diferentes
entre si.
Salida
Hasta ahora hemos usado la
instruccin echo para realizar salida a
pantalla, esta instruccin es bastante
limitada ya que no nos permite
formatear la salida. En esta pgina
veremos la instruccin printf que nos
da mucha ms potencia.
Sentencia printf
<?php
printf(cadena formato, variable1, variable2...);
Salida
Elemento
Tipo de variable
%s
Cadena de carcteres.
%d
%f
%c
Carcter ASCII.
Manejo de Cadenas
Dado el uso del lenguaje PHP el
tratamiento de cadenas es muy
importante, existen bastantes
funciones para el manejo de cadenas,
a continuacin explicaremos las ms
usadas.
Manejo de cadenas
strlen(cadena). Nos devuelve el nmero de
carcteres de una cadena.
split(separador,cadena). Divide una
cadena en varias usando un carcter
separador.
sprintf(cadena de formato, var1,
var2...). Formatea una cadena de texto al
igual que printf pero el resultado es devuelto
como una cadena.
substr(cadena, inicio, longitud).
Devuelve una subcadena de otra,
empezando por inicio y de longitud longitud.
chop(cadena). Elimina los saltos de lnea y
los espacios finales de una cadena.
strpos(cadena1, cadena2). Busca la
cadena2 dentro de cadena1 indicndonos la
posicin en la que se encuentra.
Demo
---Cadena1.php
<?php
Tablas
Las tablas (o array en ingls), son
muy importantes en PHP, ya que
generalmente, las funciones que
devuelven varios valores, como las
funciones ligadas a las bases de
datos, lo hacen en forma de tabla.
En PHP disponemos de dos tipos de
tablas. El primero sera el clsico,
utilizando ndices:
Demo - Tabla1.php
<?php
$ciudad[]
$ciudad[]
$ciudad[]
$ciudad[]
$ciudad[]
$ciudad[]
=
=
=
=
=
=
"Arequipa";
"Piura";
"Lima";
"Ica";
"Tacna";
"Loreto";
for($indice=0;$indice<=5;$indice++)
print ("La Ciudad ".$indice." es ".$ciudad[$indice].
"<BR>");
?>
Tablas
El ejemplo anterior es una forma de
asignar elementos a una tabla, pero
una forma ms formal es utilizando la
funcin array
<?php
$ciudad = array("Arequipa", "Piura", "Lima",
"Ica");
//contamos el nmero de elementos de la tabla
$numelementos = count($ciudad);
//imprimimos todos los elementos de la tabla
for ($i=0; $i < $numelementos; $i++)
{ print ("La ciudad $i es $ciudad[$i]
<BR>\n"); }
Demo Tabla3.php
<html>
<body>
<?php
$a[0] = "pepe;$a[1] = "luis";
$frutas = array("a"=>"naranja", "b"=>"pltano",
"c"=>"manzana");
?><hr>
<?php
for ($i=0; $i<sizeof($a); $i++)
print "\$a[$i] => $a[$i].<br>\n";
$frutas["d"] = "meln";
foreach($frutas as $indice => $valor)
echo "\$frutas[$indice] => $valor.<br>\n";
?><hr>
</body>
</html>
Tablas
Recorrer una tabla y mostrar su
contenido es sencillo utilizando los
ndices, pero cmo hacerlo en las
tablas asociativas?. La manipulacin
de las tabas asociativas se a hace
travs de funciones que actan sobre
un puntero interno queindica la
posicin. Por defecto, el puntero se
situa en el primer elemento aadido
en la tabla, hasta que es movido por
una funcin:
Tablas
Current-devuelve el valor del elemento
que indica el puntero.
Pos - realiza la misma funcin que
current.
Reset- mueve el puntero al primer
elemento de la tabla.
End - mueve el puntero al ltimo
elemento de la tabla.
Next- mueve el puntero al elemento
siguiente.
Prev- mueve el puntero al elemento
anterior.
Count &n- devuelve el nmero de
elementos de una tabla.
Demo - Tabla3.php
<?php
$semana =
array("Lunes","Martes","Mircoles","Jueves","Viernes",
"Sabado","Domingo");
for($i=0;$i<count($semana);$i++)
print ("Dia $i es $semana[$i]<BR>");
echo "--------------------------------------------<br>" ;
echo "La cantidad de Dias es ".count($semana)."<br>"; //7
//situamos el puntero en el primer elemento
echo "Ubicamos el puntero al Inicio <br>"; reset($semana);
echo "El Valor Actual es ".current($semana)."<br>"; //lunes
echo "Avanzamos en una Posicion<br>"; next($semana);
echo "El Valor Actual es ".pos($semana)."<br>"; //martes
echo "Nos Vamos al Final de la Arrays<br>";
end($semana);
echo "El Valor Actual es ".pos($semana)."<br>"; //domingo
echo "Retrocedemos en una Posicion<br>";
prev($semana);
echo "El Valor Actual es ".current($semana)."<br>"; //sbado
?>
Funciones
El uso de funciones nos da la capacidad de
agrupar varias instrucciones bajo un solo
nombre y poder llamarlas a estas varias
veces desde diferentes sitios,
ahorrndonos la necesidad de escribirlas
de nuevo.
Sintaxis
<?php
function Nombre(parametro1,
parametro2...)
{
instruccin1;
instruccin2;
instruccin3;
instruccin4;
return valor_de_retorno;
}
Funciones
<?php
function fact ($n)
{ $result = 1;
for ($i=1; $i <= $n; $i++)
$result *= $i;
return $result; }
?>
<html>
<body> <hr>
<?php
echo "Factorial de 10: ";
?><hr> </body> </html>
print fact(10);
Demo Funcion2.php
<?php
function imprime($texto) {
echo $texto . "\n";
}
function imprimeNegrilla($texto){
echo "<B>$texto</B>\n";
}
$MiFunc = "imprime";
$MiFunc("Hola"); //imprimir Hola
$MiFunc = "imprimeNegrilla";
$MiFunc("Hola"); //imprimir Hola
?>
Demo Funcion3.php
<html>
<head>
<title>funcion 3</title>
</head>
<body>
<?
function escribe_separa($cadena){
for ($i=0;$i<strlen($cadena);$i++){
echo $cadena[$i];
if ($i<strlen($cadena)-1)
echo "-";
}
}
escribe_separa ("hola");
echo "<p>";
escribe_separa ("Texto ms largo, a ver lo que hace");
?>
</body>
</html>
Libreras
Librerias
Ahora vamos a crear 2 pginas que
usan la librera definida
anteriormente para conseguir que las
dos paginas tengan la misma
cabecera y pie de pagina.
La instruccin para incluir una librera
en nuestra pgina es
include("nombre de librera")
Problema Propuesto
Se desea calcular el sueldo de un trabajador, sabiendo
que una UIT = 2300, se aplicaran los sgts.
Descuentos:
AFP -> si el SB es mayor a UIT descuento 12%, si es
igual 10%, menor 9%
4ta Cat -> si SB es mayor a UIT descuento 15%, igual
13%, menor 10%
Desctos -> si la suma de los descuentos anteriores es
menor a la mitad de UIT, se descuenta 10%, caso
contrario 9%
Aporte Navidad -> si su sueldo es menor a 1000 es
8%, menor a 2000 y mayor a 1000, es 13%, mayor a
2000 17%
Se realizaran los siguientes abonos, Movilidad -> si la
resta de todos los desctos es la mitad del SB abono
10%, caso contrario 5%
Refrigerio -> si SB es <= 1500 4%, 1500 < SB <=
3000 2%, mayor a esto nada
Librera
libcalcsueldo(parte
1)
<?php
define("UIT", 2300);
function Desc_AFP($sueldo){
if ($sueldo > UIT) return $sueldo*0.12;
else if ($sueldo == UIT) return $sueldo*0.10;
else return $sueldo*0.09; }
function Desc_4taCat($sueldo){
if ($sueldo > UIT) return $sueldo*0.15;
else if ($sueldo == UIT) return $sueldo*0.13;
else return $sueldo*0.10; }
function Desc_Descuentos($sueldo){
$suma = Desc_AFP($sueldo) + Desc_4taCat($sueldo);
if ($suma < (UIT/2))
return $sueldo*0.10;
else return $sueldo*0.09; }
Librera
function Desc_AporteNav($sueldo){
libcalcsueldo(parte
2)
if ($sueldo > 2000)
return $sueldo*0.17;
else if ($sueldo < 1000) return $sueldo*0.08;
else return $sueldo*0.13; }
function bon_Movilidad($sueldo){
$suma = Desc_AFP($sueldo)+Desc_AFP($sueldo)
+Desc_Descuentos($sueldo)+Desc_AporteNav($sueldo);
if (($sueldo-$suma) < ($sueldo/2)) return $sueldo*0.10;
else return $sueldo*0.05; }
function bon_Refrigerio($sueldo){
if ($sueldo <= 1500) return $sueldo*0.04;
else if ($sueldo > 3000) return $sueldo;
else return $sueldo*0.02; }
function bon_Reintegro($sueldo){
$nav = Desc_AporteNav($sueldo);
if ($nav > 300) return 20;
else return 0; }
?>
calculoSueldo.php
<html>
<head> <title>Clculo de Sueldo</title> </head>
<body style='font: 8pt Verdana'>
<?php
include("libcalcsueldo.php");
$sueldo = 3000;
$descuentos = Desc_AFP($sueldo)+Desc_4taCat($sueldo)+
Desc_AporteNav($sueldo)+Desc_Descuentos($sueldo);
$bonificacion = bon_Movilidad($sueldo)
+bon_Refrigerio($sueldo)+ bon_Reintegro($sueldo);
echo "Sueldo Bruto -> s/. ".number_format($sueldo, 2, ".", ",").
"<br><br><br>";
echo "Descuentos -----------------------------------<br><br>";
echo "AFP -> s/. ".number_format(Desc_AFP($sueldo), 2, ".",
",")."<br>";
echo "4ta Categora -> s/.
".number_format(Desc_4taCat($sueldo), 2, ".", ",")."<br>";
echo "Descuentos -> s/.
".number_format(Desc_Descuentos($sueldo), 2, ".",
calculoSueldo.php
echo "Aporte Navidad -> s/.
".number_format(Desc_AporteNav($sueldo), 2, ".",
",")."<br><br>";
echo "Total Descuentos -> s/. ".number_format($descuentos, 2, ".",
",")."<br><br>";
echo "Bonificaciones -----------------------------------<br><br>";
echo "Movilidad -> s/. ".number_format(bon_Movilidad($sueldo), 2,
".", ",")."<br>";
echo "Refrigerio -> s/. ".number_format(bon_Refrigerio($sueldo), 2,
".", ",")."<br>";
echo "Reintegro -> s/. ".number_format(bon_Reintegro($sueldo), 2,
".", ",")."<br><br>";
echo "Total Bonificaciones ->s/. ".number_format($bonificacion, 2, ".",
","). <br> <br>";
$sueldo_bruto = $sueldo - $descuentos + $bonificacion;
echo "--------------------------------------------------<br>";
echo "--------------------------------------------------<br><br>";
echo "Sueldo Bruto -> s/. ".number_format($sueldo_bruto, 2, ".", ",");
?> </body>
Formularios
Demo -- Destino.php
<HTML>
<HEAD>
<TITLE>destino.php</TITLE>
</HEAD>
<BODY>
<?php
echo "Variable Saludo: " .$_GET[" saludo "]. "
<br>";
echo "Variable Texto: " .$_GET[" texto"]. "
<br>";
?>
</BODY>
Controles de Formulario
Ejemplos
Vamos a realizar una pgina que solicita la
Demo edad.html
<html>
<head> <title>Restringir por edad</title>
</head>
<body>
<form action="edad.php" method="post">
Escribe tu edad: <input type="text"
name="edad" size="2">
<input type="submit" value="Entrar">
</form>
</body>
Demo edad.php
<html>
<head>
<title>Restringir por edad</title>
</head>
<body>
<?php
$edad = $_POST["edad"];
echo "Tu edad: $edad<p>";
if ($edad < 18) {
echo "No puedes entrar";
} else {
echo "Bienvenido";
}
?>
</body>
</html>
Demo Auto-llamada.php
<html>
<head>
<title>Me llamo a mi mismo...</title>
</head>
<body>
<? php
if (!$_POST){
?>
<form action="auto-llamada.php" method="post">
Nombre: <input type="text" name="nombre" size="30">
<br>
Empresa: <input type="text" name="empresa" size="30"> <br>
Telefono: <input type="text" name="telefono" size=14 value="01 " >
<br>
<input type="submit" value="Enviar">
</form>
<? php
} else {
echo "<br>Su nombre: " . $_POST["nombre"];
echo "<br>Su empresa: " . $_POST["empresa"];
echo "<br>Su Telfono: " . $_POST["telefono"];
}
?>
</body>
</html>
Demo Orden.html
<html>
<body>
<form action="procesaorden.php" method="post">
<table border="0">
<tr bgcolor="#cccccc">
<td width="150">Item</td> <td width="15">Cantidad</td> </tr>
<tr> <td>Llantas</td>
<td align="center"><input type="text" name="llantascan" size="3
maxlength="3"></td> </tr>
<tr> <td>Aceite</td>
<td align="center"><input type="text" name="aceitecan" size="3"
maxlength="3"></td> </tr>
<tr> <td>Aros</td>
<td align="center"><input type="text" name="aroscan" size="3
maxlength="3"></td> </tr>
<tr> <td>Como Te Enteraste de Nosotros?</td>
<td><select name=buscar>
<option value = "a">Soy Cliente Regular</option>
<option value = "b">Publicidad en TV</option>
<option value = "c">Directorio Telefonico</option>
<option value = "d">Algun Amigo</option>
</select>
</td> </tr>
<tr> <td colspan="2" align="center"><input type="submit" value="Submit
Order"></td> </tr>
</table>
</form>
Demo Procesaorden.php
<html>
<head>
<title>Contrabando Auto Parts Resultado de la Orden</title>
</head>
<body>
<h1>Contrabando Auto Parts</h1>
<h2>Resultado de la Orden</h2>
<?php
echo '<p>Orden Procesada</p>';
?>
</body>
</html>
Agregar Contenido
Dinamico
Variables de Formulario
Dentro de una secuencia de comandos
de PHP, podemos acceder a cada a
cada uno de los campos del formulario
como una variable de PHP cuyo
nombre se relaciona con el nombre del
campo del Formulario.
Ahora para que pueda trabajar con las
variables debe de estar activada el
parmetro de configuracin de
Register_globals.
Variables de Formularios
Asignando Valores a
echo
'<p>Su Orden es Como Sigue: </p>';
Variables
$totalcan = 0;
$totalcan = $llantascan + $aceitecan + $aroscan;
echo 'Items ordenadas: '.$totalcan.'<br />;
Comparando
if( $totalcan
== 0)
Valores
{ echo 'Usted no ha escogido ninguna cantidad....!
<br />; }
else
{ if ( $llantascan>0 ) echo $llantascan. '
Llantas<br />';
if ( $aceitecan>0 )
echo $aceitecan. ' Botellas de Aceite<br />';
if ( $aroscan>0 )
echo $aroscan. ' Aros<br />';
}
Declarar y Utilizar
Constantes
Una constante almacena un valor como
Calculando Totales
$total = 0.00;
$total = $llantascan * LLANTASPRECIO
+ $aceitecan * ACEITEPRECIO
+ $aroscan * AROSPRECIO;
echo 'Subtotal: S/.
'.number_format($total,2).'<br />';
$IGV = 0.19; // impuesto a las ventas
19%
$total = $total * (1 + $IGV);
echo 'Total incluido IGV: S/.
'.number_format($total,2).'<br />';
Verificando Cliente
if($buscar == 'a')
echo '<p>Cliente Regular.</p>';
elseif($buscar == 'b')
echo '<p>Cliente se ha enterado por
Publicidad de TV.</p>';
elseif($buscar == 'c')
echo '<p>Cliente se ha enterado por
Directorio Telefonico.</p>';
elseif($buscar == 'd')
echo '<p>Cliente se ha enterado por
comentario de un Amigo.</p>';
else
echo '<p>Nosotros no conocemos como
este cliente se ha enterado.</p>';
Direcciones de HTML
http://theproc.es/2010/2/4/12725/manu
al-de-html5-en-espanol---2-de-3
Almacenar Datos
Basicamente existen 2 formas de
almacenar datos: en Archivos
Planos o en una Base de Datos.
Los Archivos Planos pueden tener
mltiples formatos, pero en general,
cuando hacemos referencia a un
archivo plano, nos estamos refiriendo
a un archivo simple de texto
Fopen( )
Lectura
r+
Lectura
Escritura
w+
Escritura
Adjuncion
a+
Adjuncion
Funcin Fwrite( )
Permite escribir datos en un fichero
Funcin Fclose( )
Fclose ( puntero )
Demo Procesaorden.php
Adicionamos al ProcesaOrden.php:
Demo Verorden.php
<html>
<head>
<title>Contrabando Auto Parts - Resultado de la Orden</title>
</head>
<body>
<h1>Contrabando Auto Parts</h1>
<h2>Ordenes de los Clientes</h2>
<?php
// Abrir archivo
@ $fp = fopen("c:\orders.txt", 'r');
// si No puede Abrir
if (!$fp) {
echo '<p><strong> Su Proceso de de Abrir Archivo no lo puede
Hacer....'
.'Por Favor Intentelo
Luego.....</strong></p></body></html>';
exit; }
while (!feof($fp)) {
$orden = fgets($fp, 999);
echo $orden.'<br />' ; }
fclose($fp);
?>
</body>
Productos Aleatorios
El numero de productos que
comercializamos es muy grande, pero
lo que se quiere es seleccionar solo 3
productos en forma aleatoria para
que aparezcan en la pagina.
Para ello se va a utilizar una Matriz
donde se va a almacenar los grficos
de los productos y luego se va a usar
la funcin Shuffle(), que va a
seleccionar aleatoriamente los
productos.
Demo Aleatoria.php
<?php
$pictures = array('1.jpg', '2.jpg', '3.jpg','4.jpg', '5.jpg',
'6.jpg');
shuffle($pictures);
?>
<html>
<head>
<title>Contrabando Auto Partess</title>
</head>
<body> <center> <h1>Contrabando Auto Partes</h1>
<table width = 100%>
<tr>
<?php
for ( $i = 0; $i < 3; $i++ ) {
echo '<td align="center"><img src="';
echo $pictures[$i];
echo '"width="100" height="100"></td>'; }
?>
</tr>
</table>
</center>
</body>
</html>
Demo - verordenes.php
<?php
$orden= file("c:\orders.txt");
$num_de_orden = count($orden);
if ($num_de_orden == 0) {
echo '<p>No Hay Ordenes
Pendientes.....
Por Favor Intentelo
Luegor....</p>'; }
for ($i=0; $i<$num_de_orden; $i+
+) {
echo $orden[$i].'<br />';
<html>
<head> <title>Contrabando Auto Parts - Ordenes de
Clientes</title></head>
<body>
<h1>Contrabando Auto Parts</h1> <h2>Ordenes de Cliente</h2>
<?php
//Leer el archivo Completo Cada pedido se convierte en un elemento de la
matriz
$orden= file("c:\orders.txt");
$num_de_orden = count($orden); // cuenta el numero de pedidos de la
matriz
if ($num_de_orden == 0) {
echo '<p>No existen Pedidos Pendientes... Intentelo Mas
tarde........</p>'; }
echo "<table border=1>\n";
echo '<tr><th bgcolor="#CCCCFF">Fecha de Orden</th>
<th bgcolor="#CCCCFF">Llantas</th> <th
bgcolor="#CCCCFF">Aceite</th>
<th bgcolor="#CCCCFF">Aros</th> <th
bgcolor="#CCCCFF">Total</th>
<th bgcolor="#CCCCFF">Direccion</th> <tr>';
for ($i=0; $i<$num_de_orden; $i++) {
$linea = explode( "\t", $orden[$i] ); //divide cada linea
echo "<tr><td>$linea[0]</td>
<td align='right'>$linea[1]</td> <td
align='right'>$linea[2]</td>
Control de Acceso
Un Control de Acceso sencillo no
resulta tan dificil de implementarlo,
para ello vamos a hacer un pequeo
ejemplo de control de acceso.
Demo - Acceso.php
<?php
Sesiones
Sesiones
Demo - sesion.php
<?php
session_register('contador');
?>
<HTML>
<HEAD>
<TITLE>sesion.php</TITLE>
</HEAD>
<BODY>
<?php
If (isset($contador)==0)
{$contador=0;}
++$contador;
echo "<a href=\"sesion.php\">Has recargado esta
pgina $contador
veces</a>";
?>
</BODY>
Demo - sesion1.php
<?php
session_start();
echo "He inicializado la sesin <br>";
echo 'La sesin actual es: '.session_id().'<br>';
session_register('contador');
echo '<a href="'.$PHP_SELF.'?'.$SID.'">Contador vale:
'.++$_SESSION['contador']. '</a><br>';
session_name('misesion');
session_register('contador');
echo '<a href="'.$PHP_SELF.'?'.SID.'">Contador vale:
'.++$_SESSION['contador'].'</a><br>';
echo 'Ahora el nombre es '.session_name().' y la sesin
'.$misesion.'<br>';
?>
MySQL
Que es MySQL???
MySQL es la base de datos de codigo
abierto ms popular del mundo.
MySQL es un sistema de
administracin de base de datos
relacional. Se trata de un programa
capaz de almacenar una enorme
cantidad de datos de gran variedad y
de distribuirlos para cubrir las
necesidades de cualquier tipo de
organizacin.
Codigo Abierto
Codigo abierto significa que es
posible que pueda ser usado y
modificado por cualquiera. Alguien
puede bajar MySQL desde Internet y
usar ste sin tener que pagar nada.
Alguien puede estudiar el cdigo
fuente y cambiarlo de acuerdo a sus
necesidades. MySQL usa el GPL de la
GNU, para definir lo que se puede
hacer con el software en diferentes
situaciones.
Instalacin MySQL
Prof. Cristian Sanchez Flores
Instalar MySQL
Descargar los archivos necesarios,
descomprima el archivo zip MySQL en un
directorio Temporal
Ejecutar el programa Setup.exe, el instalador
es un asistente InstallShiedl
Seleccionar Instalacin Tipica
Especificar donde quiere Instalar MySQL,
aunque se recomienda que sea en c:\mysql
Configurar Servicios de
MySQL
Iniciando Servicios de
MySQL
Servicios de MySQL
Comprobando su
Funcionalidad
Para probar si MySQL funciona o no,
puede ejecutar el siguiente
comando:
c:\mysql\binn\mysqlshow
C:\mysql\bin\mysql u root
-p
Conexion
Cambiar Contrasea
Necesitamos cambiar la contrasea del
administrador que por defecto es vacia
para ello tipeamos lo siguiente:
mysql> SET
PASSWORD=PASSWORD(uni);
Cambiar Contrasea
Asocioando Usuario a BD
Creando Tablas
Creando Tablas
Show Tables
Describe
Privilegios de MySQL
Una de las mejores funciones de
MySQL es su avanzado sistema de
privilegios.
Un privilegio es el derecho a realizar
una accion dada sobre un
determinado objeto y se asocia a un
usuario concreto.
Al crear un usuario dentro de MySQL
se le concede un conjunto de
privilegios en los que se especifica lo
que puede y no puede hacer dentro
del sistema.
Privilegios MySQL
Los comandos GRANT y REVOKE se
utiliza para conceder y retirar los
derechos a los usuarios de MySQL en
4 niveles de privilegios, que son:
1. Global
2. Base de Datos.
3. Tabla.
4. Columna
Comando GRANT
El Comando GRANT se utiliza para crear
usuarios y concederle los privilegios.
Sintaxis
GRANT privilegios [columna]
ON elemento
TO nom_usuario [IDENTIFIED BY
contrase]
Tipos de Privilegios
Privilegio
SELECT
INSERT
UPDATE
DELETE
INDEX
ALTER
CREATE
DROP
Aplicable a
Tablas, columnas
Tablas, columnas
Tablas, columnas
Tablas
Tablas
Tablas
Base de Datos y
Tablas
Base de Datos y
Tablas
Comando REVOKE
Este comando es opuesto al comando
GRANT, se utiliza para quitar
privilegios de un usuario.
Sintaxis
REVOKE privilegios ([columnas])
ON elemento
FROM nombre_usuario
Ejemplos
Para configurar un administrador:
Ejemplos
Ejemplos
Ahora vamos a crear una Base de
Datos llamada Libros
mysql> create database Libros;
Ejemplos
Ejemplos
Ejemplos
Ahora le concedemos los privilegios
adecuados
Ejemplo
Ahora podemos reducir sus privilegios
Ejemplo
Ejemplo
Ejemplo - Libros
Conetarse a la Base de Datos Libros
Creando Tablas
Insercion
Insercion
Insertando Libros
Visualizando Registros
Visualizando Registros
Operadores
=
>=
IS NOT NULL
IN
NOT LIKE
>
<=
IS NULL
NOT IN
<
!=
BETWEEN
LIKE
Combinaciones 2 Tablas
Combinando Tablas
select customers.customerid,
customers.name,
orders.orderid
from customers inner join orders
on customers.customerid =
orders.customerid;
Combinando Tablas
select c.customerid,
c.name,
o.orderid
from customers as c, orders o
where c.customerid =
o.customerid;
Demo Buscar.html
<html>
<head>
<title>Book-O-Rama Catalogo Busqueda</title>
</head>
<body>
<h1>Book-O-Rama Catalogo Busqueda</h1>
<form action="resultado.php" method="post">
Escoja el Tipo de Busqueda:<br />
<select name="tipobusqueda">
<option value="author">Author</option>
<option value="title">Titulo</option>
<option value="isbn">Codigo</option>
</select>
<br /> Ingrese Texto de Busqueda:<br />
<input name="buscatext" type="text" size="20">
<br />
<input type="submit" value="Buscar">
</form>
</body>
$buscatext=
trim($buscatext);
Recuperar Resultados de
Consulta
$num_results = $result->num_rows;
$num_results =
mysqli_num_rows($result);
Recuperar Resultados de
Consulta
Ahora como sabemos cuando
registros existen en este query,
podemos trabajarlo con un bucle.
for ($i=0; $i <$num_results; $i++)
{
// procese los resultados
}
Recuperar Resultados de
Consulta
Ahora para leer la informacin se
utiliza la funcion fetch_assoc() o
mysqli_fetch_assoc(), esta funcion
toma cada fila del conjunto de
resultados y devuelve la fila como
una matriz, con cada clave en forma
de nombre de atributo y cada valor
con su valor correspondiente en la
matriz.
Recuperar Resultados de
Consulta
$row = $result->fetch_assoc();
$row = mysqli_fetch_assoc($result);
Recuperar Resultados de
Consulta
Recuperar Resultados de
Consulta
echo
echo
echo
echo
echo
echo
echo
echo
echo
Desconectar un Base de
Datos
Desconectar un Base de
Datos
Seguidamente se procede a
desconectar o cerrar la conexin a la
base de datos, para ello puede ser
cualquiera de las 2 formas
$db->close();
mysqli_close($db);
Demo Resultado.php
<html>
<head>
<title>Book-O-Rama Resultado de Busqueda</title>
</head>
<body>
<h1>Book-O-Rama Resultado de Busqueda</h1>
<?php
$tipobusqueda=$_POST['tipobusqueda'];
$buscatext=$_POST['buscatext'];
$buscatext= trim($buscatext);
if (!$tipobusqueda || !$buscatext)
{
echo 'Usted tiene que ingresar y escoger en Busqueda.';
exit;
}
@ $db = new mysqli('localhost', 'root', 'uni', 'libros');
if (mysqli_connect_errno())
{
echo 'Error: No puede conectarse a la Base de Datos.';
exit; }
$query = "select * from books where ".$tipobusqueda." like '%".$buscatext."%'";
/*
$result = $db->query($query);
$num_results = $result->num_rows;
*/
$result = mysqli_query($db, $query);
$num_results = mysqli_num_rows($result);
echo '<p>Numero de Libros Encontrados: '.$num_results.'</p>';
for ($i=0; $i <$num_results; $i++)
{
$row = $result->fetch_assoc();
echo '<p><strong>'.($i+1).'. Titulo: ';
echo stripslashes($row['title']);
echo '</strong><br />Autor: ';
echo stripslashes($row['author']);
echo '<br />Codigo: ';
echo stripslashes($row['isbn']);
echo '<br />Precio: ';
echo stripslashes($row['price']);
echo '</p>';
}
$result->free();
$db->close();
?>
</body>
</html>
Demo - Nuevolibro.html
<html>
<head>
<title>Book-O-Rama - Ingrese Nuevo Libro</title>
</head>
<body>
<h1>Book-O-Rama - Ingrese Nuevo Libro</h1>
<form action="inserta_libro.php" method="post">
<table border="0">
<tr>
<td>Codigo</td>
<td><input type="text" name="isbn" maxlength="13" size="13"></td>
</tr>
<tr>
<td>Autor</td>
<td> <input type="text" name="author" maxlength="30" size="30"></td>
</tr>
<tr>
<td>Titulo</td>
<td> <input type="text" name="title" maxlength="60" size="30"></td>
</tr>
<tr>
<td>Precio $</td>
<td><input type="text" name="price" maxlength="7" size="7"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Insertar"></td>
</tr>
</table>
</form>
</body>
</html>
Demo Insertalibro.php
<html>
<head>
<title>Book-O-Rama Resultado de la Insercion de Libro</title>
</head>
<body>
<h1>Book-O-Rama Resultado de la Insercion de Libro</h1>
<?php
$isbn=$_POST['isbn'];
$author=$_POST['author'];
$title=$_POST['title'];
$price=$_POST['price'];
if (!$isbn || !$author || !$title || !$price)
{
echo 'usted tiene que ingresar todos los campos.<br />';
exit;
}
@ $db = new mysqli('localhost', 'root', 'uni', 'libros');
if (mysqli_connect_errno())
{
echo 'Error: No puede conectarse a la Base de Datos.';
exit;
}
$query = "insert into books values
('".$isbn."', '".$author."', '".$title."', '".$price."')";
$result = $db->query($query);
if ($result)
echo $db->affected_rows.' libros insertados en la base de datos.';
$db->close();
?>
</body>
</html>