Cesar Systems

Herramientas Informaticas

CREAR UN ARCHIVO PDF DESDE PHP

A CONTINUACIÓN LES DEJO UN ARHIVO PARA PODER GENERAR UN ARCHIVO PDF CON PHP.

PARA ELLO UTILIZAREMOS LA LIBRERIA DE EZPDF

ABAJO EL CODIGO FUENTE

   1: <?php

   2:  

   3: //DomPDF 

   4:  

   5:  

   6: require_once('class.ezpdf.php'); //IMPORTAMOS LA LIBRERIA DE EZPDF

   7: include ('conexionmysql.php');   //IMPORTAMOS LA LIBRERIA PARA REALIZAR LA CONEXIÓN CON MYSQL

   8:  

   9: $pdf =& new Cezpdf('LETTER');                //SELECCIONAMOS EL EL TAMAÑO DE HOJA DEL ARCHIVO PDF, EN ESTE CASO SERA TAMAÑO CARTA

  10: $pdf->selectFont('../fonts/courier.afm');    //SELECCIONAMOS EL TIPO DE LETRA

  11: $pdf->ezSetCmMargins(1,1,1.5,1.5);           //AQUI VA LOS MARGENES DE LAHOJA

  12:  

  13:     

  14:     //GUARDAREMOS EN UNA VARIABLE LOS DATOS PARA LA CONEXIÓN AL GESTOR DE BASE DE DATOS

  15:     $direccion1="localhost";

  16:     $usuario1="root";

  17:     $password1="";

  18:     $basededatos1="bd_itlm";

  19:  

  20:  

  21:     //NOS CONECTAMOS A LA BASE DE DATOS LLAMANDO LA FUNCIÓN cononectar_mysql() UTILIZANDO LAS VARIABLES DE ARRIBA

  22:     conectar_mysql("$direccion1","$usuario1","$password1","$basededatos1");

  23:  

  24:  

  25: //GUARDAMOS LA CADENA PARA REALIZAR LA CONSULTA

  26: $Presta = "SELECT * FROM usuarios ORDER BY id ASC";

  27:  

  28: //EJECUTAMOS LA CONSULTA Y GUARDAMOS EL RESULTADO EN UNA VARIABLE

  29: $resPres = mysql_query($Presta);

  30:  

  31: //GUARDAMOS EL NUEMRO DE FILAS EN OTRA VARIABLE

  32: $total_presta = mysql_num_rows($resPres);

  33:  

  34:  

  35: $ixx = 0;

  36: while($datatmp = mysql_fetch_assoc($resPres)){

  37:     $ixx = $ixx+1;

  38:     $data[] = array_merge($datatmp, array('num'=>$ixx));

  39: }

  40: $titles = array(

  41:                 'id'=>'id',

  42:                 'usuario'=>'solicitante',

  43:                 'clave'=>'clave',

  44:             );

  45: $options = array(

  46:                 'shadeCol'=>array(0.9,0.9,0.9),

  47:                 'xOrientation'=>'center',

  48:                 'width'=>500

  49:             );

  50: $txttit = "Instituto Tecnológico de Los Mochisn";

  51: $txttit.= "Reporte general de prestamos de edificiosn";

  52:  

  53: $pdf->ezimage("escudo.jpg",0,150,'none','center');        

  54: $pdf->ezText($txttit, 12);

  55: $pdf->ezTable($data, $titles, '', $options);

  56: $pdf->ezText("nnn", 10);

  57: $pdf->ezText("Fecha: ".date("d/m/Y"), 10);

  58: $pdf->ezText("Hora: ".date("H:i:s")."nn", 10);

  59: ob_end_clean();                        

  60: $pdf->ezStream();

  61: ?>

LES DEJO LAS LIBRERIAS Y CODIGOS FUENTE PARA QUE LO PUEDAN DESCARGAR, EN ESTE ENLACE ESTA TODO JUNTO CON EL EJEMPLO

DESCARGAR

 

 

EN ESTE ENLACE ESTA NOMAS LA LIBRERIA ORIGINAL PARA GENERAR EL PDF

DESCARGAR EZPDF

DEFINICIÓN ARQUITECTURA MULTINIVEL

ARQUITECTURA DE APLICACIONES EMPRESARIALES

ACTIVIDAD 1.2 .1 DEFINICIÓN ARQUITECTURA MULTINIVEL

1.2.2 COMPARACIÓN CON LA ARQUITECTURA MULTICAPA

1.2.3 ¿SE PUEDE FUSIONAR LA ARQUITECTURA MULTINIVEL Y LA

LA ARQUITECTURA MULTICAPA?

1.2.4 ESQUEMA

1.2.5 EJEMPLO DE ARQUITECTURA MULTINIVEL

1.2.1 DEFINICIÓN

Referido como (arquitectura n-tier), es una arquitectura cliente-servidor en la presentación, el procesamiento la solicitud de los datos y la gestión de los datos son físicamente procesos separados.

1.2.2 COMPARACIÓN CON LA ARQUITECTURA MULTICAPA

La diferencia es que la arquitectura multicapa, los procesos están separados en un mismo equipo en cambio en la arquitectura se refiere a separar físicamente los procesos en aplicaciones independientes que trabajan en conjunto.

1.2.3 ¿Se puede fusionar la arquitectura multinivel con la arquitectura multicapa?

Si se puede ya que en una está separada lógicamente y en otra físicamente.

1.2.4 ESQUEMA

clip_image001

1.1.5 EJEMPLO DE FUNCIONAMIENTO

Por ejemplo una aplicación utiliza middleware a solicitudes de datos de servicio entre un usuario y una base de datos, emplean múltiples niveles de arquitectura. El uso más extendido de la arquitectura multi-tier es la arquitectura de tres niveles.

Por ser tan pobre

 

Me voy para nunca regresar
al fin y al cabo tu ya me pagaste mal
y si algún día te traiciona algún querer
pues ya ni modo yo no te volveré a ver.

Tu bien lo sabes que te quise de verdad
y no lo niego si hasta me hiciste llorar
cuando decías que me ibas a abandonar
por ser tan pobre era todo y nada más

Que seas feliz es lo que yo te deseo
que seas rodeada de pura felicidad
que te amen mucho y te sepan comprender
que seas dichosa ya que yo no pude ser.

1.2.1 DEFINICIÓN ARQUITECTURA MULTICAPAS

ARQUITECTURA DE APLICACIONES EMPRESARIALES

ACTIVIDAD 1.2 .1 DEFINICIÓN ARQUITECTURA MULTICAPAS

1.2.2 VENTAJAS Y DESVENTAJAS

1.2.3 MODELO DE 3 CAPAS

1.2.4 ESQUEMA

1.2.5 EJEMPLO DE FUNCIONAMIENTO

 

1.1.1 DEFINICIÓN

Lo que se conoce como arquitectura en capas es en realidad un estilo de programación donde el objetivo principal es separar los diferentes aspectos del desarrollo, tales como las cuestiones de presentación, lógica de negocio, mecanismos de almacenamiento, etc.

 

1.1.2 VENTAJAS Y DESVENTAJAS DE LA ARQUITECTURA MULTICAPAS

Ventajas

La ventaja fundamental de la arquitectura n-capas con una arquitectura de dos niveles (o una de de 3 capas con una de 2 niveles) es que separa hacia afuera el proceso, eso ocurre para mejorar el balance de la carga en los diversos servidores; es más escalable.

Desventajas

· Pone más carga a la red, debido al tráfico que genera en la red

· Es mucho más difícil programar y probar el software que en la arquitectura de dos niveles por que tienen que comunicarse con más dispositivos para terminar la transacción del usuario.

 

1.1.3 MODELO DE 3 CAPAS

1. Capa de presentación: es la que ve el usuario (también se la denomina “capa de usuario”), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida como interfaz gráfica y debe tener la característica de ser “amigable” (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio.

2. Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él. También se consideran aquí los programas de aplicación.

3. Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.

1.1.4 ESQUEMA

image

1.1.4 EJEMPLO DE FUNCIONAMIENTO

Un ejemplo simple es la transacción del cajero de un banco

1. Al cliente se le muestra la información y la interfaz grafica para hacer operaciones.

2. Una vez enviada la información al servidor la capa de negocios hace las operaciones necesarias, como transformar claves y hacer llamadas a la capa de datos (Esta es la lógica de negocios).

3. Luego se hace una llamada a la función del gestor de base de datos para devolver un valor a la capa de negocios y este procesara la información para mostrarla en la interfaz grafica.

ARQUITECTURA MODELO-VISTA-CONTROLADOR

ARQUITECTURA DE APLICACIONES EMPRESARIALES

 

ACTIVIDAD 1.1 .1 ARQUITECTURA MODELO-VISTA-CONTROLADOR

1.1.2 DEFINICIÓN

1.1.3 ESQUEMA

1.1.4 DESCRIPCION DEL PATRÓN

1.1.5 EJEMPLO DE FUNCIONAMIENTO

1.1.1 DEFINICIÓN

Es un patrón o modelo de abstracción de desarrollo de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos.

Como ejemplo:

Sería un sistema Web, el código HTML muestra la interfaz de usuario, el código PHP obtiene los datos que el usuario ingreso y los procesa, esto sería la lógica de negocios, luego se hacen consultas o modificaciones a los datos almacenados en el gestor de base de datos ej. MySQL que seria los datos de aplicación.

 

1.1.2 FUNCIONAMIENTO

1. El usuario interactúa con la interfaz de usuario de al recibir la acción notificada por el usuario mismo.

2. El controlador recibe por parte de la interfaz de usuario la notificación de la acción solicitada por el usuario.

3. El controlador accede al modelo actualizándolo, posiblemente modificándolo en forma adecuada a la acción solicitada por el usuario

4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario, luego da la orden de actualización.

5. La interfaz de usuario espera de nuevo interacciones del usuario, comenzando el ciclo nuevamente.

1.1.3 ESQUEMA

clip_image002

1.1.4 DESCRIPCIÓN DEL PATRÓN

  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema también puede operar con más datos no relativos a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el sistema modelado.

  • Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.

  • Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.

1.1.5 EJEMPLO DE FUNCIONAMIENTO

Un ejemplo simple es el proceso de acceso a FACEBOOK

1. Se muestra la pantalla de acceso, el usuario ingresa el nombre, la contraseña y da clic en envía (Esta es la interfaz de usuario).

2. Los datos se procesan en un archivo PHP que se encuentra en el servidor, encriptando la contraseña (Esta es la lógica de negocios).

3. Ya la contraseña esta encriptada, ahora se busca en la base de datos para saber si existe y coincide el usuario y contraseña (Datos de aplicación).

4. Se procesa los datos en el modelo y luego devuelve un resultado en la interfaz de usuario.

Acceso a un sistema con PHP, MySQL

 

php-logo

Utilizando las funciones de MySQL AES_ENCRYPT

   1: 

   2:  

   3: INGRESO AL SISTEMA 

   4: <?php

   5: /*******************************************************************************************************************

   6: *                             DESCRIPCION: ESTE ARCHIVO TIENE LA FUNCION DE CONECTAR CON LA BASE DE DATOS.             *

   7: *                             PROGRAMADOR: JULIO CESAR LEYVA RODRIGUEZ.                                               *

   8: *                             FECHA:          01/07/2012                                                               *

   9: ********************************************************************************************************************/

  10:  

  11:  

  12:  

  13: function conectar_mysql($direccion,$usuario,$password,$basededatos)

  14:     {

  15:     global $enlace;

  16:     if(!($enlace=mysql_connect($direccion,$usuario,$password)))

  17:         {

  18:         echo " alert('error de conexion')";

  19:         exit();

  20:         }

  21:     if(!(mysql_select_db($basededatos,$enlace)))

  22:         {

  23:         echo " alert('error al conectar con la base de datos')";

  24:         exit();

  25:         }

  26:     return $enlace;

  27:     }

  28:     

  29: function desconectar()

  30:     {

  31:     mysql_close($enlace);

  32:     }

  33:  

  34:     

  35:     

  36:     /*FUNCION QUE TE PERMITIRA VALIDAR SI UN CAMPO TE TEXTO ESTA VACIO

  37: 

  38:     Esta función se puede usar en un condición "if" */

  39:  

  40:      

  41:  

  42:      function validar_campo($campo)

  43:  

  44:         {

  45:  

  46:         if($campo=="")

  47:  

  48:            return(true);

  49:  

  50:           

  51:  

  52:        else

  53:  

  54:            return(false);

  55:  

  56:        }

  57:     function buscar($data)

  58:     {

  59:         

  60:     $total = mysql_num_rows(mysql_query($data));

  61:     if($total==0)

  62:         return(false);

  63:     else

  64:         return(true);

  65:     }

  66:     

  67:     ?>

  68:     

  69:     <form id "acceso" name "acceso" method="post" action="index.php">

  70:     

  71:     <table  border='0' align="Center">

  72:         

  73:         

  74:         

  75:             

  76:                 <img align="Center" src="http://1.bp.blogspot.com/_JrrrT5TM9lQ/SV8pjlllv0I/AAAAAAAAACQ/OpyoqSeY_SY/s320/escudo.jpg" 

  77:                     border="0" width="200" height="200">

  78:             

  79:         

  80:     

  81:     

  82:     <table align="center">

  83:         

  84:         

  85:             <td align = "center">

  86:         

  87:             USUARIO

  88:             

  89:             

  90:         

  91:         

  92:             

  93:             

  94:             <input name="usuario" type="text"/>

  95:             

  96:         

  97:         

  98:         

  99:         

 100:             <td align = "center">

 101:         

 102:             PASSWORD

 103:             

 104:             

 105:         

 106:         

 107:             

 108:             

 109:             <input name="pass" type="password"/>

 110:             

 111:         

 112:         

 113:         

 114:             <td align="center">

 115:              <input type="submit" name="Submit" value="Accesar">

 116:             

 117:         

 118:     

 119:     

 120:     

 121: <?php

 122: $usuario=@$_POST['usuario'];

 123: $password=@$_POST['pass'];

 124: $llave="millave";

 125: if(validar_campo($usuario)==false && validar_campo($password)==false)

 126:     {

 127:     $direccion1="localhost";

 128:     $usuario1="root";

 129:     $password1="";

 130:     $basededatos1="bd_itlm";

 131:     conectar_mysql($direccion1,$usuario1,$password1,$basededatos1);

 132:  

 133:     

 134:      $busqueda = "SELECT * FROM usuarios WHERE usuario='$usuario' AND 

 135:                                             clave=AES_ENCRYPT('$password','$llave')";

 136:     

 137:     if(buscar($busqueda)==true)

 138:         {

 139:         Echo " alert('ENCONTRADO')";

 140:         }

 141:     else

 142:         {

 143:         Echo " alert('NO ENCONTRADO')";

 144:         }

 145:     }

 146: ?>

 147:     

 148: 

Capítulo 2

Variables, expresiones y

sentencias

 

2.1. Valores y tipos

El valor es uno de los elementos fundamentales (como por ejemplo una letra o un numero) que manipula un programa. Los valores que hemos visto hasta el momento son 2 (el resultado de sumar 1 + 1) y Hola, mundo.

Estos valores son de distintos tipos: 2 es un entero y Hola, mundo es una cadena, llamada así porque contiene una “cadena” de letras. Usted (y el interprete) puede identificar las cadenas porque están encerradas entre comillas.

La sentencia print también funciona con enteros:

>>> print 4

4

Si no esta seguro del tipo que tiene un determinado valor, puede preguntárselo al interprete de Python.

>>> type("Hola, mundo")

<type 'string'>

>>> 

type(17)

<type 'int'>

No es sorprendente que las cadenas sean de tipo string (cadena en ingles) y los enteros sean de tipo int (por integer en ingles). De forma menos obvia, los números con decimales (separados por medio de un punto en ingles) son de tipo float debido a la representacion de estos numeros en el formato llamado de coma °otante (°oating-point).

   1: >>> type(3.2)

   2: <type 'float'>

¿Que ocurre con los valores como “17” y “3.2”? Parecen numeros, pero están entre comillas como las cadenas.

   1: >>> type("17")

   2: <type 'string'>

   3: >>> 

   4: type("3.2")

   5: <type 'string'>

   6: Son cadenas.

Cuando escriba un entero largo, podría estar tentado de usar comas entre grupos de tres dígitos, como en 1,000,000. Este no es un entero legal en Python, pero es una expresion legal:

   1: >>> print 1,000,000

   2: 1 0 0

En fin, no era eso lo que queríamos. Python interpreta 1,000,000 como una lista de tres numeros que debe imprimir. Así que recuerde no insertar comas en sus enteros.

2.2. Variables

Una de las características mas potentes de los lenguajes de programación es la capacidad de manipular variables. Una variable es un nombre que hace referencia a un valor.

La sentencia de asignación crea nuevas variables y les asigna un valor:

>>> mensaje = "Que onda?"

>>> n = 17

>>> pi = 

3.14159

Este ejemplo muestra tres asignaciones. La primera de ellas asigna el valor “Que onda?” a una variable nueva, de nombre mensaje. La segunda le da el valor entero 17 a n, y la tercera le da el valor de numero en coma flotante 3.14159 a pi.

Una forma habitual de representar variables sobre el papel es escribir el nombre con una flecha se~nalando al valor de la variable. Este tipo de representación se llama diagrama de estado, ya que muestra en que estado se halla cada una de las variables (considerelo como el estado de animo” de la variable”).

El siguiente diagrama muestra el efecto de las tres sentencias de asignación anteriores:

image

La sentencia print tambien funciona con variables.

>>> print mensaje

"Que onda?"

>>> print 

n

17

>>> print pi

3.14159

En cada caso, el resultado es el valor de la variable. Las variables tambien tienen tipo. De nuevo, podemos preguntar al interprete lo que son.

>>> type(mensaje)

<type 'string'>

>>> 

type(n)

<type 'int'>

>>> type(pi)

<type 

'float'>

El tipo de una variable es el tipo del valor al que se refiere.

2.3. Nombres de variables y palabras reservadas

Como norma general, los programadores eligen nombres significativos para sus variables: esto permite documentar para que se usa la variable.

Los nombres de las variables pueden tener una longitud arbitraria. Pueden estar formados por letras y números, pero deben comenzar con una letra. Aunque es aceptable usar mayúsculas, por convención no lo hacemos. Si lo hace, recuerde que la distinción es importante: Bruno y bruno son dos variables diferentes.

El guion bajo ( ) también es legal y se utiliza a menudo para separar nombres con múltiples palabras, como mi nombre o precio del cafe colombiano.

Si intenta darle a una variable un nombre ilegal, obtendrá un error de sintaxis.

   1: >>> 76trombones = "gran desfile"

   2: SyntaxError: invalid 

   3: syntax

   4: >>> mas$ = 1000000

   5: SyntaxError: invalid 

   6: syntax

   7: >>> class = "Curso de Programacion 101"

   8: SyntaxError: 

   9: invalid syntax

76trombones es ilegal porque no comienza por una letra. mas$ es ilegal porque contiene un caracter ilegal, el signo del dolar. Pero ¿que tiene de malo class?

Resulta que class es una de las palabras reservadas de Python. El lenguaje usa las palabras reservadas para definir sus reglas y estructura, y no pueden usarse como nombres de variables.

Python tiene 28 palabras reservadas:

and     continue     else     for    import     not     raise

assert  def          except   from   in         or      return

break   del          exec     global is         pass    try

class   elif         finally  if     lambda     print   while

Tal vez quiera mantener esta lista a mano. Si el interprete se queja de alguno de sus nombres de variable, y usted no sabe por que, compruebe si esta en esta lista.

2.4. Sentencias

Una sentencia es una instrucción que puede ejecutar el interprete de Python.

Hemos visto dos tipos de sentencias: print y la asignación.

Cuando usted escribe una sentencia en la l³nea de comandos, Python la ejecuta y muestra el resultado, si lo hay. El resultado de una sentencia print es un valor.

Las sentencias de asignación no entregan ningún resultado.

Normalmente un guion contiene una secuencia de sentencias. Si hay mas de una sentencia, los resultados aparecen de uno en uno tal como se van ejecutando las sentencias.
Por ejemplo, el guion

   1: print 1

   2: x = 2

   3: print x

   4: prsenta la salida

   5: 1

   6: 2

De nuevo, la sentencia de asignacion no produce ninguna salida.

Página 107 de 143

Creado con WordPress & Tema de Anders Norén