Вы находитесь на странице: 1из 205

Web

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

PHP devuelve los


datos en formato
HTML, listo para que
APACHE los enve al
cliente.

Apache
(Entrega HTML al
Browser)

PHP

Programacin para
obtener datos de la
base.

Base de Datos

Peticion Paginas: Proceso

Preliminares
Revisiones previas a la instalacin de
Apache Web Server

Yuri Jose Pando Fernandez

Servicios

Revisar en SERVICIOS, que no este activado:

1. Comprobar colocando en el browser


http://localhost ,debe darnos un mensaje : no se
puede cargar la pagina o algo similar.
2. Opcionalmente se puede utilizar el comando netstat
-na o netstat -nab , a fin de observar que puertos
estn siendo utilizados, para evitar problemas
durante la instalacin.

localhost

Combinaciones: Apache &


PHP
PHP 5.1 ..

PHP 5.2.0

PHP 5.2.14

PHP 5.3.0

Apache 2.0.X (63)


Apache 2.2.X (16)

PHP 5.3.3

Apache
Pequeas Teorias

http://www.apache.org

Yuri Jos Pando Fernndez

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

Archivo inicial a publicarse

DirectoryIndex index.html index.php

No mostrar listado del contenido de una carpeta web

Options -Indexes

Cambio de Directorio de publicacin

DocumentRoot RUTA
<Directory RUTA> Configuracin adicional
</Directory>

Directorio adicional de publicacin

Alias /url ruta_nueva_carpeta


<Directory ruta_nueva_carpeta>
DirectoryIndex index.php index.htm Options
Indexes MultiViews AllowOverride All
Order allow,deny Allow from all

</Directory>
http://localhost/url

Pgina 14

Apache
Instalando..

http://www.apache.org

Yuri Jos Pando Fernndez

Instalando Apache
Iniciamos el proceso de instalacin.

Instalando Apache

Aceptamos los trminos de la licencia de uso,


reproduccin y distribucin.

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

Veamos nuestro directorio de publicacin.

Iniciando Servicio Apache

Configurando Apache
Para poder cambiar la carpeta de almacenamiento de
las paginas cambiar en httpd.conf

DocumentRoot -> c:/webdev (por defecto es c:/Archivos de


Programa/Apache Group/Apache2/htdocs)

<Directory c:/webdev>

Y reiniciar el servicio del apache..

PHP : (http://www.php.net)

Creado por Rasmus Lerdorf en 1994, con el objetivo de


contar las visitas a su curriculum en internet.
Lenguaje de programacin que se ejecuta en el servidor.
(consumindole por instantes recursos como memoria y
procesador).
Multiplataforma: Windows, Linux (Origen).
Basado en el lenguaje C, del cual ha heredado parte de
su sintaxis y caractersticas.
Forma parte de la comunidad open-source.

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.

Como Trabaja el PHP

Empresas que Trabajan


con PHP

Paquetes Instaladores

Instalacin - PHP
Procedemos a descomprimir el PHP y renombrar.

Mover la carpeta php5 a la raz de


la unidad.

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

de PHP, con el que podemos controlar muchos aspectos de


su funcionamiento. En esta pgina intentaremos explicar
para que sirve cada una de sus instrucciones y cual es la
mejor forma de configurarlo. La sistemtica de la pgina
sigue el mismo orden interior de php.ini, aunque puede que
haya ligeras diferencias con tu copia, debidas a pequeos
cambios entre versiones. La configuracin aqu contemplada
es la que corresponde a las versiones php 4.3.x.
Que es el archivo php.ini?
Este archivo sirve para indicar una serie de valores que
determinan el comportamiento del intrprete PHP. Lo
encontramos dentro de la distribucin php en el directorio
raiz bajo el nombre php.ini-recommended o php.ini-dist. Se
trata de un archivo de texto, que podemos abrir con
cualquier editor que trabaje con texto simple (*.txt). Como
siempre, nos ser mas cmodo trabajar con un editor como
html-kit que coloree sintcticamente el archivo. Lo primero
que debemos hacer es en efecto editar una de las dos
versiones disponibles, configurarla de acuerdo a nuestras
necesidades, y guardarla con el nombre php.ini. Cual

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

Cambie la directiva extension_dir para que


apunte al directorio en el que se encuentra
sus DDL de extension. En la instalacion
normal se corresponde a C:\PHP\ext. De esta
forma, su archivo php.ini contendr:
extension_dir = c:/php/ext
Cambie la directiva doc_root para que
apunte al directorio raiz desde el que actua
su servidor Web. Probablemente ser
Si utiliza Apache
doc_root=C/Program Files / Apache /
Group / Apache / htdocs
Si utiliza IIS
doc_root=C/Inetpub/wwwroot

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

Aadir PHP a su configuracion


de Apache
Abrir el archivo httpd.conf que se encuentra
en C:\Archivos de Programas\Apache
Group\Apache\Conf\ y bueque las
siguientes lineas si no las encuntra
aadalas y luego grabe y reinicie el
servidor apache.
LoadModule php5_module
c:/php/php5apache.dll
Addtype application/x-httpd-php .php

Realizando Pruebas
Abrimos nuestro Editor de texto y
escribimos lo siguiente

<? phpinfo(); ?>


Luego Grabelo en la siguiente ruta:
C:\Archivos de Programa\Apache
Group\Apache\htdocs con el Nombre de
test.php
Luego levante Internet y coloque la
siguiente direccion
http://localhost/test.php

Realizando Pruebas

Demo
Yuri Jos Pando Fernndez

Demo ---- ejem01.php


<html>
<head> <title>Ejemplo de PHP</title> </head>
<body>
Parte de HTML normal.
<BR><BR>
<?php
$myvar = "Hola. Este es mi primer script en PHP <br>";
//Esto es un comentario
echo $myvar;
echo "Parte de PHP<br>";
for($i=0;$i<10;$i++)
{
echo "Linea ".$i."<br>"; }
?>
</body>
</html>

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.

Demos ---- Var2.php


<html>
<head><title>Ejemplo de PHP Variable </title> </head>
<body>
<?php
$a = 1;
$b = 3.34;
$c = "Hola Mundo";
echo $a,"<br>",$b,"<br>",$c,"<br>";
$a = Fatima;
$b = 23;
echo $a,"<br>",$b;
?>
</body>
</html>

Constantes
Son valores que se mantienen, no cambian a

diferencia de las variables que si lo hacen.


Ejemplo
<html>
<body>
<p>Las constantes no estn precedidas por un smbolo de
dlar ($). Slo se pueden definir mediante la funcin
<b>define()</b>. </p>
<?php
define("CONSTANTE", "Hola a todos.");
define("MAX", 10);
?><hr>
<?php
echo CONSTANTE.<br>;
echo MAX;
?>
</body>
</html>

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

Suma dos nmeros

Resta

7 - 9

Resta dos nmeros

Multiplic
acin

6 * 3

Multiplica dos nmeros

Divisin

4 / 8

Divide dos nmeros

Mdulo

7 % 2

Devuelve el resto de dividir ambos


nmeros, en este ejemplo el resultado es 1

++

Suma 1

$a++

Suma 1 al contenido de una variable.

--

Resta 1

$a--

Resta 1 al contenido de una variable.

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

$a es menor o igual que


$b

>=

Mayor o igual

$a >= $b

$a es mayor o igual que


$b

Operadores Lgicos

Los operadores lgicos son usados para


evaluar varias comparaciones, combinando
los posibles valores de estas.

Operador

Nombre

Ejemplo

Devuelve cierto cuando:

&&

(7>2) &&
(2<4)

and

(7>2) and
(2<4)

||

(7>2) ||
(2<4)

Devuelve verdadero cuando al menos


una de las dos es verdadera.

or

(7>2) or
(2<4)

Devuelve verdadero cuando al menos una


de las dos es verdadera.

No

! (7>2)

Niega el valor de la expresin.

Devuelve verdadero cuando ambas


condiciones son verdaderas.
Devuelve verdadero cuando ambas
condiciones son verdaderas.

Sentencias Condicionales

Las sentencias condicionales nos permiten


ejecutar o no unas ciertas instrucciones
dependiendo del resultado de evaluar una
condicin. Las ms frecuentes son la instruccin
if y la instruccin switch.

Sentencia Simple
Sentencia if ... Else
<?php

if (condicin)

{ Sentencias a ejecutar cuando la

condicin es cierta. }
else

{ Sentencias a ejecutar cuando la

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.
}
?>

Demo --- wh1.php


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Inicio<BR>
<?php
$i=0;
while ($i<10)
{
echo "El valor de i es ", $i,"<br>";
$i++;
}
?>
Final<BR>
</body>

Demo ---- wh2.php


<?php
$size=1;
While ($size<=6)
{ echo"<font size=$size>Tamao
$size</font><br>\n";
$size++;
}
echo Imprimir Solo hasta el Numero 3 y Salir<br>;
$num=1;
while ($num<5)
{ echo"<font size=$size>$num</font><br>\n";
if ($num == 3)
{ echo "Aqu nos salimos \n";
break; }
$num++;

Sentencia For
<?php
for (inicial ; condicin ; ejecutar en
iteracin)
{
intrucciones a ejecutar.
}
?>

Demo ---- f1.php


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Inicio<BR>
<?php
for($i=0 ; $i<10 ; $i++)
{
echo "El valor de i es ", $i,"<br>";
}
?>
Final<BR>
</body>
</html>

Demo 2 --- f2.php


<?
For ($size=1;$size<=6;$size++)
{
echo"<font size=$size>Tamao
$size</font><br>\n";
}
?>

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...);

Demo ---- Printf1.php


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
printf( El numero dos con diferentes formatos: %d
%f
%.2f ,2,2,2);
?>
</body>
</html>

Salida

La cadena de formato puede incluir una seria de


carcteres especiales que indican como formatear
las variables que se incluyen en la instruccin.

Elemento

Tipo de variable

%s

Cadena de carcteres.

%d

Nmero sin decimales.

%f

Nmero con decimales.

%c

Carcter ASCII.

Aunque existen otros tipos, estos son los ms


importantes.

Demo ---- Printf2.php


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$var="texto";
$num=3;
printf("Puede fcimente intercalar <b>%s</b> con nmeros
<b>%d</b> <br>",$var,$num);
printf("<TABLE BORDER=1 CELLPADDING=10>");
for ($i=0;$i<10;$i++)
{
printf("<tr><td>%d</td></tr>",$i);
}
printf("</table>");
?>
</body>
</html>

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

echo "Funciones de Cadena<br>";


$cad="ABCDE"; echo "STRLEN<br>";
echo "La Cadena es ".$cad." su Longitud es
".strlen($cad)."<br>"; echo "SPRINTF<br>";
$res = sprintf("8x5 = %d <br>",8*5);
echo "El resultado de la variables es ".$res."<br>";
echo "SUBSTR<br>"; $cad = "Devuelve una subcadena de
otra";
echo "Cadena 1 -> ".$cad;
echo "Recuperar Pos 9, Car 3->".substr($cad,9,3)."<br>";
echo "CHOP<br>";
if (chop("Cadena \n\n ") == "Cadena") echo
"Iguales<br><br>";
echo "STRPOS<br>";
$cad = "Busca la palabra dentro de la frase";echo
$cad."<br>";
echo "Buscando la 'palabra' en
Pos.".strpos($cad,"palabra"),"<br>"; echo
"STR_REPLACE<br>";
$cad = "Un pez de color verde, como verde es la hierba.";
echo "Cadena Original ->".$cad."<br>";
echo "Reemplanzado por rojo ->".str_replace("verde","rojo",

Demo --- Cadena2.php


<?php
echo "Para concatenar una Cadena<br>";
$cadena1="Bienvenidos a Sistemas UNI";
$cadena2=" PHP - Nivel I";
echo "Cadena 1 ->".$cadena1."<br>";
echo "Cadena 2 ->".$cadena2."<br>";
$cadena3=$cadena1.$cadena2;
echo "Cadena Concateneda ->".
$cadena3. "<br>" ; ?>

Demo --- Cadena3.php


<?php
echo "Recorrer una cadena, utilizando los
Indices<br>";
$cadena = "Bienvenidos a Sistemas UNI,
Lima - Peru";
echo "Cadena Original ->".$cadena."<br>";
echo "Buscando la letra U<br>";
$i=0; //recorro la cadena hasta encontrar
una "U"
while ($cadena[$i]!="U" && $i<
strlen($cadena)){
$i++; }
if ($i==strlen($cadena))
echo "Llego al Final, No se encuentra la
Letras Buscada";
else

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

Opcionalmente podemos pasarle parmetros a las


funciones que se trataran como variable locales y
as mismo podemos devolver un resultado con la
instruccin return valor; Esto produce la
terminacin de la funcin retornando un valor.

<?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>

Demo Ejemplos de parmetros por


Referencia
<?php
function por_valor ($str)
{ $str .= " concatenacin.; }
function por_referencia (&$str)
{ $str .= " concatenacin."; }
?>
<html>
<body>
<?php
$cad = "El . es el operador de ; por_valor($cad);
echo "$cad<br>";
por_referencia($cad);
echo "$cad<br>";
?><hr>
Por defecto, los parmetros de una funcin se pasan por
valor.<br>
Para pasar un parmetro de una funcin por referencia, se
antepone un ampersand (&) al nombre del parmetro en la
definicin de la funcin.
</body>

Demo Parmetros por Defecto


<?php
function fact ($n = 10)
{
$result = 1;
for ($i=1; $i <= $n; $i++)
$result *= $i;
return $result;
}
?>
<html>
<body>
<?php
echo "Factorial de 10: "; print fact();
?>
</body> </html>

Libreras

El uso de libreras es tremendamente til, nos


permiten agrupar varias funciones y variables en
un mismo fichero, de manera que luego podemos
incluir esta librera en distintas pginas y disponer
de esas funciones fcilmente.
<?php
function CabeceraPagina()
{ ?>
<FONT SIZE="+1">Esta cabecera estar en todas
sus Pginas.</FONT><BR> <hr>
<?php
}
function PiePagina(){ ?>
<hr> <FONT SIZE="-1">Este es el pie de
pgina.</FONT><BR>
Autor: Yuri Pando
<?php
} ?>

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")

Demo ---- llamalib01.php


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php include("libreria01.php") ?>
<?php CabeceraPagina(); ?>
Pgina 1
<BR><BR><BR><BR><BR>
Contenido blalbl blalb alb<BR><BR>
ms cosas...<BR><BR>
fin<BR><BR>
<?php PiePagina(); ?>
</body>

Demo --- llamalib02.php


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php include("libreria01.php") ?>
<?php CabeceraPagina(); ?>
Esta es otra pgina<BR><BR>
completamente distinta<BR><BR>
pero comparte el pie y la cabecera con la
otra.<BR><BR>
<?php PiePagina(); ?>
</body>
</html>

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

Los formularios pertenecen al HTML, y son utilizados en


cualquier Tipo aplicacion Web(ASP, Java, Php, etc.).
Parte del Formulario
<form action="form_proceso" method="post/get">
etiquetas/controles
</form>
Donde:
Action - Indica la URL(formulario, pagina) que se
encarga de procesarlos datos.
Method - Envia la informacion de una pagina a otra,
que puede ser POST o GET
GET, envia la Informacion atraves de la URL
POST, envia la inform. atraves de un objeto llamado
STDIO
Nota - El POST envia mucho mayor informacion
que el GET, el GET no permite el envio de Archivos

Envi y Recepcin de Datos Mtodo


Get y Post

El lenguaje PHP nos proporciona una manera


sencilla de manejar formularios, permitindonos
de esta manera procesar la informacin que el
usuario ha introducido.
Al disear un formulario debemos indicar la
pgina PHP que procesar el formulario, as como
en mtodo por el que se le pasar la informacin
a la pgina.
En el siguiente ejemplo hemos comentado que
los datos de un formulario se enva mediante el
mtodo indicado en el atributo METHOD de la
etiqueta FORM, los dos mtodos posibles son
GET y POST.
La diferencia entre estos dos mtodos radica en
la forma de enviar los datos a la pgina, mientras
que el mtodo GET enva los datos usando la

Demo --- Envio.php


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de
formularios</H1>
Introduzca su nombre:
<FORM ACTION="procesa.php"
METHOD="GET">
<INPUT TYPE="text" NAME="nombre"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>

Demo --- Procesa.php


<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de
formularios</H1>
El nombre que ha introducido es: <?php
echo $_GET['nombre'] ?>
<br>
</body>
</html>

Pasar Variables por URL


Bucles y condiciones son muy tiles para
procesar los datos dentro de un mismo
script. Sin embargo, en un sitio Internet,
las pginas vistas y los scripts utilizados
son numerosos. Muy a menudo
necesitamos que nuestros distintos scripts
estn conectados unos con otros y que se
sirvan de variables comunes. Por otro
lado, el usuario interacciona por medio de
formularios cuyos campos han de ser
procesados para poder dar una respuesta.
Todo este tipo de factores dinmicos han
de ser eficazmente regulados por un
lenguaje como PHP.

Pasar Variables por URL


Para pasar las variables de una pgina a
otra lo podemos hacer introduciendo
dicha variable dentro del enlace
hipertexto de la pgina destino. La
sintaxis sera la siguiente:
<a href="destino.php?
variable1=valor1&variable2=valor2&...">
Mi enlace
Nota:
</a>No siempre se definen automticamente las variables

recibidas por parmetro en las pginas web, depende de una


variable de configuracin de PHP: register_globals, que
tiene que estar activada para que as sea.

Demo --- origen.html


<HTML>
<HEAD>
<TITLE>origen.html</TITLE>
</HEAD>
<BODY>
<a href = "destino.php?saludo=hola
&texto=Esto es una variable texto">
Paso variables saludo y texto a la pgina
destino.php
</a>
</BODY>
</HTML>

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

Estructura de un Control de formulario


<input type='....' name='....' value='.....' >
Donde (Propiedades):
type = Tipo de Control, entre los mas
utilizados tenemos: text / password /
checkbox / radio / submit / reset /file
/hidden /image / buton
name = asigna un nombre al control
value = valor inicial del control
maxlength - mximo numero de caracteres
checked - solo es para los controles
checkbox y radiobutton , indican el marcado
de ellos

Ejemplos
Vamos a realizar una pgina que solicita la

edad del visitante y, dependiendo de dicha


edad, permita o no visualizar el contenido de
la web. A los mayores de 18 aos se les
permite ver la pgina y a los menores no.

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>

Otros Ejemplos de Trabajo


con formularios HTML

Auto Llamadas de Paginas


Al incluir un formulario en una pgina se debe
indicar, a travs del atributo action, el
nombre del archivo PHP al que enviaremos
los datos escritos en el formulario. De este
modo, para un esquema de envo de datos
por formulario, pueden participar dos
pginas: una que contiene el formulario y
otra que recibe los datos de dicho formulario.
Lo mismo ocurre cuando enviamos variables
por una URL. Tenemos una pgina que
contendr el enlace y otra pgina que
recibir y tratar esos datos para mostrar
unos resultados.

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>

Creando Formulario Pedido

La Empresa Contrabando S.A.C. ha creado un formulario


de pedido para los repuestos que vende la empresa
<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 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

Ahora sobre Procesarorden.php


vamos a agregar un fragmento de
codigo en la cual se va a utilizar la
funcion Date() en la cual le va a
indicar al cliente la Fecha y la Hora en
que procesa su pedido. H Hora, I
Minutos, J Dia, S ordinal th, F Mes
echo '<p>Orden procesada a las ';
echo date('H:i, jS F');
echo '</p>';

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

Para seguir con el ejemplo en la parte inicial del


archivo procesarorden.php agregamos las
siguientes
lneas:
<?php
// creando
variables
$llantascan = $_POST['llantascan'];
$aceitecan = $_POST['aceitecan'];
$aroscan = $_POST['aroscan'];
$buscar = $_POST['buscar'];
?>
Ahora para mostrar como funcionan las variables de
formularios agregamos las siguientes lneas en la
ultima parte del codigo de PHP.

echo'<p>Su orden es la siguiente: </p>';


echo $llantascan.' Lantas <br />';
echo $aceitecan.' Aceite <br />';
echo $aroscan.' Aros <br />';}

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

una variable con la diferencia de que se


establece una vez y no se puede
cambiar en ningun otro punto de de la
secuencia de comandos.
define('LLANTASPRECIO', 100);
define('ACEITEPRECIO', 30);
define('AROSPRECIO', 25);

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

Como Procesar Archivo?

La operacin de escribir datos en un


archivo incluye los siguientes pasos:

1. En primer lugar, abrir el archivo. Si


el archivo no existe, tendramos que
crearlo.
2. Escribir los datos en el archivo.
3. Cerrar el archivo.

Fopen( )

Esta funcin me permite abrir un


fichero para grabar, leer o adicionar
datos en el.

$fp = fopen( ruta, nodo )


Donde
el Nodo,Descripcion
puede ser:
Nodo
Nombre
r

Lectura

Abre el archivo para la lectura.

r+

Lectura

Abre el archivo para lectura y


escritura.

Escritura

Abre el archivo para escritura

w+

Escritura

Abre el archivo para escritura y


lectura.

Adjuncion

Abre el archivo para adjuntar


(escribir) nicamente.

a+

Adjuncion

Abre el archivo para adjuntar


(escribir) y leer.

Funcin Fwrite( )
Permite escribir datos en un fichero

Fwrite ( var_fichero, cadena,


longitud )

Funcin Fclose( )

Permite cerrar un archivo.

Fclose ( puntero )

Demo Procesaorden.php

Adicionamos al ProcesaOrden.php:

//Almacenar en una cadena


$cad = "\n".$date."\t".$llantascan." llantas \t".$aceitecan."
aceite\t"
.$aroscan." aros\t\$".$total."\t". $direccion."\n";
// Abrir archivo
@ $fp = fopen("c:\orders.txt", 'ab');
// 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; }
fwrite($fp, $outputstring, strlen($outputstring));
fclose($fp);
echo '<p>Orden Grabada.</p>';
?>

Leer desde un archivo


Para leer desde un archivo utlilizamos
la funcion fopen() pero con el nodo r.
Feof(), esta funcion permite controlar
el fin de una archivo.
Fgets(), esta funcion permite leer una
linea de un archivo texto.

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>

Visualizar Archivo con


Matriz

Hasta el momento hemos caragado


los archivos con la funcion fopen(),
pero tambien lo podemos hacer
desde una Matriz, pero para ello
vamos a usar la funcion File() que
carga el archivo entero en una matriz.
Cada linea del archivo se convierte en
un elemento de la matriz.
Tambien se va a utilizar la funcion
Count() para comprobar el numero de
elementos que contiene la matriz.

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 />';

Otra Forma vOrdenes2.php

<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

//creando nombres cortos para las variables


@ $name = $_POST['name'];
@ $password = $_POST['password'];
if(empty($name)||empty($password)) {
//el usuario tiene que introducir nombre y usuario... ?>
<h1>Control de Acceso</h1>
Esta Pagina es Ultra Secreta......
<form method="post" action="acceso.php">
<table border="1">
<tr>
<th> Usuario </th>
<td> <input type="text" name="name"> </td>
</tr>
<tr>
<th> Password </th>
<td> <input type="password" name="password"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Log In">
</td>
</tr>
</table>
</form>
<?php
}
else if($name=='user'&&$password=='pass')
{
// el usuario y la contrasea son correctos.......
echo '<h1>Bienvenidoooo......!</h1>';
echo 'A nuestra pagina Ultra Secreta.......';
}
else
{
// Usuario y contrasea no son correctos......
echo '<h1>Lo Sentimosss.......!</h1>';
echo 'Usted no esta autorizado a visualizar esta informacion.....';
}

Sesiones

Las variables de sesin se diferencian de las


variables clsicas en que stas residen en el
servidor, son especificas de un solo usuario
definido por un identificador y pueden ser
utilizadas en la globalidad de nuestras pginas.
Para iniciar una sesin podemos hacerlo de dos
formas distintas:
-Declaramos abiertamente la apertura de sesin
por medio de la funcin session_start(). Esta
funcin crea una nueva sesin para un nuevo
visitante o bien recupera la que est siendo
llevada a cabo.
-Declaramos una variable de sesin por medio de
la funcin session_register('variable'). Esta
funcin, adems de crear o recuperar la sesin
para la pgina en la que se incluye tambin sirve
para introducir una nueva variable de tipo
sesin.

Sesiones

Otras funciones tiles para la gestin de


sesiones son:
Session_id(), Nos devuelve el identificador
de la sesin.
Session_destroy(), Da por abandonada la
sesin eliminando variables e identificador.
Session_unregister('variable'), Abandona
una variable sesin
Las sesiones han de ser iniciadas al principio de
nuestro script. Antes de abrir cualquier etiqueta
o de imprimir cualquier cosa. En caso contrario
recibiremos un error.

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>';
?>

Ejemplos y temas como sesiones,


usuarios, cookies
http://www.webestilo.com/php/php11b.pht

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.

Que es una Base de Datos


Una Base de Datos, en su definicion
mas sencilla, es una coleccin de
archivos relacionados.

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

Pude instalar el servidor MySQL como


servicio si escribe lo siguiente en la
linea de comandos de Windows:
cd c:\mysql\bin
mysqld-nt install
Obtendra la siguiente respuesta
Service successfully installed

Iniciando Servicios de
MySQL

Ya puede iniciar y detener el servicio


MySQL desde la linea de comandos
con:

NET START mysql


NET STOP mysql

Servicios de MySQL

Comprobando su
Funcionalidad
Para probar si MySQL funciona o no,
puede ejecutar el siguiente
comando:

c:\mysql\binn\mysqlshow

Conexin a Una Base de


Datos

El equipo en el que se ejecuta MySQL


y que almacena los datos se
denomina Servidor MySQL. Para
establecer una conexin a este
servidor, tipeamos desde prompt lo
siguiente:

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

Creando Base de Datos

Asocioando Usuario a BD

Conexin con el Usuario


Sistema

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:

mysql> grant all


-> on *
-> to coco identified by
uni
-> with grant option ;

Ejemplos

Ejemplos
Ahora vamos a crear una Base de
Datos llamada Libros
mysql> create database Libros;

Ejemplos

Ejemplos

Seguidamente vamos a crear un usuario


Pablo sin privilegios

Ejemplos
Ahora le concedemos los privilegios
adecuados

Ejemplo
Ahora podemos reducir sus privilegios

Ejemplo

Ahora si ya no necesito que ese usuario no


utilice la Base de Datos

Ejemplo

Ahora vamos a crear un usuario para


nuestra pagina Web

Ejemplo - Libros
Conetarse a la Base de Datos Libros

Creando Tablas

Tenemos un archivo libros.sql cargamos la


estructura

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>

Consultar una Base de


Datos desde la Web
1.
2.
3.
4.
5.

Para realizar una consulta desde la


web se sigue los siguientes pasos:
Comprobar y filtrar los datos
procedentes del usuario.
Configurar una conexin a la Base de
Datos pertinente.
Consultar la Base de Datos.
Recuperar los Resultados.
Presentar los resultados al usuario.

Comprobar y Filtrar Datos


Entrantes

En primer lugar vamos a eliminar los


espacios en blanco que pudiera haber
introducido el usuario de manera
involuntaria al principio y al final del
termino de busqueda.

$buscatext=
trim($buscatext);

Comprobar y Filtrar Datos


Entrantes
Ahora tenemos que verificar que el
usuario ha introducido un texto de
busqueda y un tipo de busqueda.
if (!$busquedatipo || !$buscatext)
{
echo 'Usted tiene que ingresar y
escoger en Busqueda.';
exit;
}

Configurar una Conexion


Para establecer la Conexin a La base
de Datos podemos utilizar cualquier
de las 2 instrucciones:
@ $db = new mysqli('localhost', 'root',
'uni', 'libros');
@ $db = mysqli_connect('localhost',
'root', 'uni', 'libros');

Configurar una Conexion


Ahora vamos a comprobar si la
coneccion se ha realizado con xito
para ello utilizaremos lo siguiente:
if (mysqli_connect_errno())
{
echo 'Error: No puede conectarse a
la Base de Datos.';
exit;
}

Consultar una Base de


Datos

Para realizar la consulta primero


vamos a almacenar la instruccin de
la consulta en una variable.
$query = "select * from books where
".$tipobusqueda." like '%".
$buscatext."%' ;

Consultar una Base de


Datos

Ahora procedemos a ejecutar la


consulta la podemos realizar de 2
maneras:
$result = $db->query($query);

$result = mysqli_query($db, $query);

Recuperar Resultados de
Consulta

Ahora si deseamos que nos muestre


la cantidad de registros devueltos,
hay 2 formas:

$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

Para ello vamos a utilizar cualquiera


de las 2 formas

$row = $result->fetch_assoc();
$row = mysqli_fetch_assoc($result);

Recuperar Resultados de
Consulta

Dada la matriz asociativa $row,


podemos recorrer cada campo y
mostrarlos adecuadamente.
Para ello vamos a utilizar una funcion
llamada stripslashes(), para limpiar el
valos antes de mostrarlo.

Recuperar Resultados de
Consulta
echo
echo
echo
echo
echo
echo
echo
echo
echo

'<p><strong>'.($i+1).'. Titulo: ';


stripslashes($row['title']);
'</strong><br />Autor: ';
stripslashes($row['author']);
'<br />Codigo: ';
stripslashes($row['isbn']);
'<br />Precio: ';
stripslashes($row['price']);
'</p>';

Desconectar un Base de
Datos

Para liberar un conjunto de resultados


se invoca a cualquieral de las
siguientes lineas:
$result->free();
mysqli_free_result($result);

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>

Вам также может понравиться