gaby Diseño web_segundo parcial

Embed Size (px)

Citation preview

INSTITUTO POLITCNICO NACIONALESCUELA SUPERIOR DE CMPUTO

Desarrollo de Aplicaciones para la Web I

M. en C. Gabriela de Jess Lpez Ruiz

M. en C. Gabriela de Jess Lpez Ruiz

11

Contenido del segundo parcialUNIDAD TEMA DESCRIPCIN DEL TEMA

III

IV

Introduccin a Servidores: Apache y Tomcat 3.1. Manejadores de base de datos 3.2 Repaso del lenguaje SQL 4. PHP 4.1. Repaso de JAVA 4.2. JSP 3.M. en C. Gabriela de Jess Lpez Ruiz 22

Segundo Parcial

M. en C. Gabriela de Jess Lpez Ruiz

33

Introduccin a Servidores

M. en C. Gabriela de Jess Lpez Ruiz

44

Servidores Web con soporte para JSPPara poder publicar aplicaciones desarrolladas en JSP o Servlets, se debe realizar la instalacin de un servidor Web, algunas de las opciones son las siguientes: Apache Tomcat. Es la implementacin de referencia oficial para las especificaciones Servlet 2.2 y JSP 1.1. Puede ser usado como pequeo servidor para probar pginas JSP y servlets, o puede integrarse en el servidor Web Apache. Tomcat, al igual que el propio Apache es gratuito. JavaServer Web Development Kit (JSWDK). El JSWDK es la implementacin de referencia oficial para las especificaciones Servlet 2.1 y JSP 1.0. Se usaba como pequeo servidor para probar servlets y pginas JSP antes de desarrollar un completo servidor Web que soporta estas tecnologas.

M. en C. Gabriela de Jess Lpez Ruiz

55

Servidores Web con soporte para JSPAllaire JRun. JRun es un motor servelt y JSP que puede conectarse dentro de los servidores Netscape Enterprise o FastTrack, de los servidores Web IIS, Microsoft Personal Web Server, viejas versiones de Apache, OReillys WebSite, o StarNine WebSTAR.

New Atlantas ServletExec. ServletExec es un rpido motor de servlets y pginas JSP que puede ser conectado dentro de los servidores web ms populares para Solaris, Windows, MacOS, HPUX y Linux. Podemos descargarlo y usarlo de forma gratuita, pero muchas de sus caractersticas avanzadas y utilidades de administracin estarn desactivadas hasta que compremos una licencia.M. en C. Gabriela de Jess Lpez Ruiz 66

Plataformas y Servidores soportadas por PHP

Plataformas (actualidad): Plataformas (en perparacin): UNIX (todas las variantes) OS/390 Win32 (NT/W95/W98/W2000) AS/400 QNX Mac (WebTen) OS/2 BeOS Servidores: Apache (UNIX,Win32) CGI fhttpd ISAPI (IIS, Zeus) NSAPI (Netscape iPlanet) Java servlet AOLServer Roxen Servidores (en preparacin): Apache 2.0 WSAPI (O'Reilly WebSite) phttpd thttpd

M. en C. Gabriela de Jess Lpez Ruiz

77

Manejadores de base de datos

M. en C. Gabriela de Jess Lpez Ruiz

88

Base de datos MySQLGabriela de Jess Lpez

M. en C. Gabriela de Jess Lpez Ruiz

99

ContenidoSQLDiseo de una base de datos Administracin Insertar, actualizar y borrar datos Consultas, relaciones Modificar la base de datos

M. en C. Gabriela de Jess Lpez Ruiz

1010

SISTEMA GENERAL DE BASES DE DATOS (SGBD)

Conjunto de programas que permiten definir, construir y manipular BD.Definir: especifica la estructura de datos. Construir: permite meter datos en la BD. Manipular: permite hacer consultas, manipulaciones, aadir,....

Controlar la concurrencia. Controlar la integracin de los datos. Seguridad (control de acceso).

M. en C. Gabriela de Jess Lpez Ruiz

1111

MODELO DE DATOSFormalismo matemtico que permite describir la estructura de una BD. Clasificacin de modelos de datos: Conceptuales (Alto Nivel): permite describir la Base de Datos como la percibe el usuario (ER). De implementacin (de representacin):Relacional. Jerrquico. En red.

De bajo nivel (Fsico): como se almacenan los datos en la BD.

M. en C. Gabriela de Jess Lpez Ruiz

1212

ESQUEMAESQUEMA Descripcin de una BD utilizando modelo de datos. INSTANCIA Contenido de una BD en un instante determinado

1313

M. en C. Gabriela de Jess Lpez Ruiz

MODELO ENTIDAD-RELACIONENTIDAD:Entidad particular: Algo del mundo real que tiene existencia independiente. Entidad: Descripcin de un conjunto de entidades particulares que comparten la misma estructura.

ATRIBUTO:Informacin o propiedad que describe una entidad. Tipos de atributos:

Simples: no se pueden descomponer, describen un solo valor. Compuestos: se descomponen en varios atributos. Monovaluados: para cada entidad solo hay un atributo. Multivaluados: para cada entidad hay varios atributos. Derivados: su valor se puede deducir de algn atributo almacenado. Clave: tienen un valor diferente para cada entidad particular

M. en C. Gabriela de Jess Lpez Ruiz

1414

MODELO ENTIDAD-RELACIONDominio de un atributo:Conjunto de valores que puede tomar una entidad particular.

RELACION:Asociacin entre varias entidades. Grado de una relacin: S R E1x...xEn entonces grado(R)=N. Relacin recursiva: relacin de una entidad consigo misma.

Cardinalidad de una relacin:nmero de entidades particulares con las que puede estar relacionada una entida particular determinada. Tipos de cardinalidad: 1:1, 1:N, M:N.M. en C. Gabriela de Jess Lpez Ruiz 1515

Repaso del lenguaje SQL

M. en C. Gabriela de Jess Lpez Ruiz

1616

SQLEl lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalizacin hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servir para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI ser interpretable por cualquier motor de datos.

M. en C. Gabriela de Jess Lpez Ruiz

1717

Componentes del SQL

El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

M. en C. Gabriela de Jess Lpez Ruiz

1818

ComandosExisten dos tipos de comandos SQL: Los DLL que permiten crear y definir nuevas bases de datos, campos e ndices. Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.M. en C. Gabriela de Jess Lpez Ruiz 1919

Comandos DLL

Comando

Descripcin

CREATE DROP ALTER

Utilizado para crear nuevas tablas, campos e ndices Empleado para eliminar tablas e ndices Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos.

M. en C. Gabriela de Jess Lpez Ruiz [email protected]

Comandos DMLComando SELECT INSERT UPDATE DELETE Descripcin Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado Utilizado para cargar lotes de datos en la base de datos en una nica operacin. Utilizado para modificar los valores de los campos y registros especificados Utilizado para eliminar registros de una tabla de una base de datosM. en C. Gabriela de Jess Lpez Ruiz [email protected]

ClusulasLas clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular.ClusulaFROM WHERE GROUP BY HAVING ORDER BY

DescripcinUtilizada para especificar la tabla de la cual se van a seleccionar los registros Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar Utilizada para separar los registros seleccionados en grupos especficos Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especficoM. en C. Gabriela de Jess Lpez Ruiz [email protected]

Operadores lgicosOperador AND Uso Es el "y" lgico. Evalua dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdar si alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin.

OR

NOT

M. en C. Gabriela de Jess Lpez Ruiz [email protected]

Operadores de ComparacinOperador < > = =

Uso Menor que Mayor que Distinto de Menor Igual que Mayor Igual que Igual que

BETWEEN Utilizado para especificar un intervalo de valores. LIKE IN

Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos

M. en C. Gabriela de Jess Lpez Ruiz [email protected]

Funciones de AgregadoLas funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros.Funcin AVG COUNT SUM MAX MIN Descripcin Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado

M. en C. Gabriela de Jess Lpez Ruiz [email protected]

Consultas de SeleccinLas consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin de las bases de datos, esta informacin es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto ResultSet. Este conjunto de registros es modificable.

M. en C. Gabriela de Jess Lpez Ruiz

2626

Consultas BsicasLa sintaxis bsica de una consulta de seleccin es la siguiente: SELECT Campos FROM Tabla; En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo: SELECT nombre, cct_domicilio FROM CCT; Esta consulta devuelve un Conjunto de Resultados (ResultSet) con el campo nombre y cct_domicilio de la tabla CCT.M. en C. Gabriela de Jess Lpez Ruiz 2727

Devolver LiteralesEn determinadas ocasiones nos puede interesar incluir una columna con un texto fijo en una consulta de seleccin, por ejemplo, supongamos que tenemos una tabla de inmuebles y deseamos recuperar la clave y domicilio, podramos realizar la siguiente consulta:SELECT cveinm,'Domicilio :', domicilio FROM inmuebles WHERE CVEINM='090001O';

M. en C. Gabriela de Jess Lpez Ruiz

2828

Ordenar los RegistrosAdicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la clasula ORDER BY Lista de Campos. En donde Lista de campos representa los campos a ordenar. Ejemplo:

SELECTcveinm,'Domicilio', domicilio, telefono

FROMinmuebles

WHEREcveinm='090001O'

ORDER BYdomicilio Esta consulta devuelve los campos cveinm, domicilio, Telefono de la tabla INMUEBLES ordenados por el campo Domicilio.

M. en C. Gabriela de Jess Lpez Ruiz

2929

Ordenar los RegistrosSe pueden ordenar los registros por mas de un campo, como por ejemplo:SELECTcveinm,'Domicilio', domicilio, telefono

FROMinmuebles

WHEREcveinm='090001O'

ORDER BYDomicilio, telefono

Incluso se puede especificar el orden de los registros: ascendente mediante la clusula ASC (se toma este valor por defecto) descendente (DESC).

M. en C. Gabriela de Jess Lpez Ruiz

3030

Consultas con PredicadoEl predicado se incluye entre la clusula y el primer nombre del campo a recuperar, los posibles predicados son:

Predicado ALL TOP DISTINCT

Descripcin Devuelve todos los campos de la tabla Devuelve un determinado nmero de registros de la tabla Omite los registros cuyos campos seleccionados coincidan totalmente

M. en C. Gabriela de Jess Lpez Ruiz [email protected]

AliasEn determinadas circunstancias es necesario asignar un nombre a alguna columna determinada de un conjunto devuelto, otras veces por simple capricho o por otras circunstancias. Para resolver todas ellas tenemos la palabra reservada AS que se encarga de asignar el nombre que deseamos a la columna deseada. SELECT DISTINCTROW Apellido AS Empleado FROM Empleados;M. en C. Gabriela de Jess Lpez Ruiz 3232

Intervalos de ValoresPara indicar que deseamos recuperar los registros segn el intervalo de valores de un campo emplearemos el operador Between cuya sintaxis es: campo [Not] Between valor1 And valor2 (la condicin Not es opcional)

En este caso la consulta devolvera los registros que contengan en "campo" un valor incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condicin Not devolver aquellos valores no incluidos en el intervalo. SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999;M. en C. Gabriela de Jess Lpez Ruiz 3333

El Operador LikeSe utiliza para comparar una expresin de cadena con un modelo en una expresin SQL. Su sintaxis es: expresin Like modelo En donde expresin es una cadena modelo o campo contra el que se compara expresin. Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. Por modelo puede especificar un valor completo (Ana Mara), o se pueden utilizar caracteres comodn como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An*).M. en C. Gabriela de Jess Lpez Ruiz 3434

El Operador InEste operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una lista. Su sintaxis es: expresin [Not] In(valor1, valor2, . . .) SELECT * FROM Pedidos WHERE Provincia In ('Madrid', 'Barcelona', 'Sevilla');

M. en C. Gabriela de Jess Lpez Ruiz

3535

La clusula WHERELa clusula WHERE puede usarse para determinar qu registros de las tablas enumeradas en la clusula FROM aparecern en los resultados de la instruccin SELECT. Depus de escribir esta clusula se deben especificar las condiciones expuestas en los dos primeros apartados de este captulo.SELECT Apellidos, Salario FROM Empleados WHERE Salario > 21000;

SELECT Id_Producto, Existencias FROM Productos WHERE Existencias 21000;

SELECT Id_Producto, Existencias FROM Productos WHERE Existencias 100 AND NombreProducto Like BOS*;M. en C. Gabriela de Jess Lpez Ruiz 4141

Consultas de ActualizacinLas consultas de actualizacin son aquellas que no devuelven ningn registro, son las encargadas de acciones como aadir y borrar y modificar registros. DELETE Crea una consulta de eliminacin que elimina los registros de una o ms de las tablas listadas en la clusula FROM que satisfagan la clusula WHERE. Esta consulta elimina los registros completos, no es posible eliminar el contenido de algn campo en concreto. Su sintaxis es: DELETE FROM Tabla WHERE criterioM. en C. Gabriela de Jess Lpez Ruiz 4242

Consultas de ActualizacinINSERT INTO Agrega un registro en una tabla. Se la conoce como una consulta de datos aadidos. Esta consulta puede ser de dos tipos: Insertar un nico registro Insertar en una tabla los registros contenidos en otra tabla. Insertar un nico Registro En este caso la sintaxis es la siguiente: INSERT INTO Tabla (campo1, campo2, .., campoN)VALUES (valor1, valor2, ..., valorN)

M. en C. Gabriela de Jess Lpez Ruiz

4343

Consultas de ActualizacinPara seleccionar registros e insertarlos en una tabla nueva En este caso la sintaxis es la siguiente: SELECT campo1, campo2, ..., campoN INTO nuevatabla FROM tablaorigen [WHERE criterios]

Insertar Registros de otra Tabla En este caso la sintaxis es: INSERT INTO Tabla [IN base_externa] (campo1, campo2, ..., campoN) SELECT TablaOrigen.campo1, TablaOrigen.campo2, ..., TablaOrigen.campoN FROM TablaOrigen

M. en C. Gabriela de Jess Lpez Ruiz

4444

Consultas de ActualizacinCrea una consulta de actualizacin que cambia los valores de los campos de una tabla especificada basndose en un criterio especfico. Su sintaxis es: UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN WHERE Criterio;

M. en C. Gabriela de Jess Lpez Ruiz

4545

Tipos de datosTipo de Datos BINARY BIT BYTE COUNTER CURRENCY DATETIME SINGLE Longitud 1 byte 1 byte 1 byte 4 bytes 8 bytes 8 bytes 4 bytes Descripcin Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. Valores Si/No True/False Un valor entero entre 0 y 255. Un nmero incrementado automticamente (de tipo Long) Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. Un valor de fecha u hora entre los aos 100 y 9999. Un valor en punto flotante de precisin simple con un rango de -3.402823*1038a -1.401298*10-45 para valores negativos, 1.401298*10-45a 3.402823*1038para valores positivos, y 0.

M. en C. Gabriela de Jess Lpez Ruiz [email protected]

SubconsultasUna subconsulta es una instruccin SELECT anidada dentro de una instruccin SELECT, SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta. Puede utilizar tres formas de sintaxis para crear una subconsulta: comparacin [ANY | ALL | SOME] (instruccin sql) expresin [NOT] IN (instruccin sql) [NOT] EXISTS (instruccin sql)M. en C. Gabriela de Jess Lpez Ruiz 4747

Consultas de Unin InternasConsultas de Combinacin entre tablas Las vinculaciones entre tablas se realiza mediante la clusula INNER que combina registros de dos tablas siempre que haya concordancia de valores en un campo comn. Su sintaxis es:SELECT campos FROM tb1 INNER JOIN tb2 ON tb1.campo1 comp tb2.campo2

En donde: tb1, tb2 Son los nombres de las tablas desde las que se combinan los registros. campo1, campo2 Son los nombres de los campos que se combinan. Si no son numricos, los campos deben ser del mismo tipo de datos y contener el mismo tipo de datos, pero no tienen que tener el mismo nombre. comp Es cualquier operador de comparacin relacional : =, , =, o .

M. en C. Gabriela de Jess Lpez Ruiz

4848

Consultas de Unin InternasSe puede utilizar una operacin INNER JOIN en cualquier clusula FROM. Esto crea una combinacin por equivalencia, conocida tambin como unin interna. Las combinaciones Equi son las ms comunes; stas combinan los registros de dos tablas siempre que haya concordancia de valores en un campo comn a ambas tablas. El ejemplo siguiente muestra cmo podra combinar las tablas Categoras y Productos basndose en el campo IDCategoria: SELECT Nombre_Categora, NombreProducto FROM Categorias INNER JOIN Productos ON Categorias.IDCategoria = Productos.IDCategoria;M. en C. Gabriela de Jess Lpez Ruiz 4949

Consultas de Unin InternasTambin se pueden enlazar varias clusulas ON en una instruccin JOIN, utilizando la sintaxis siguiente: SELECT campos FROM tabla1 INNER JOIN tabla2 ON tb1.campo1 comp tb2.campo1 AND ON tb1.campo2 comp tb2.campo2) OR ON tb1.campo3 comp tb2.campo3)]; Tambin puede anidar instrucciones JOIN utilizando la siguiente sintaxis: SELECT campos FROM tb1 INNER JOIN (tb2 INNER JOIN [( ]tb3 [INNER JOIN [( ]tablax [INNER JOIN ...)] ON tb3.campo3 comp tbx.campox)] ON tb2.campo2 comp tb3.campo3) ON tb1.campo1 comp tb2.campo2;

M. en C. Gabriela de Jess Lpez Ruiz

5050

Consultas de AutocombinacinLa autocombinacin se utiliza para unir una tabla consigo misma, comparando valores de dos columnas con el mismo tipo de datos. La sintaxis en la siguiente: SELECT alias1.columna, alias2.columna, ... FROM tabla1 as alias1, tabla2 as alias2 WHERE alias1.columna = alias2.columna AND otras condiciones Por ejemplo, para visualizar el nmero, nombre y puesto de cada empleado, junto con el nmero, nombre y puesto del supervisor de cada uno de ellos se utilizara la siguiente sentencia: SELECT t.num_emp, t.nombre, t.puesto, t.num_sup,s.nombre, s.puesto FROM empleados AS t, empleados AS s WHERE t.num_sup = s.num_emp

M. en C. Gabriela de Jess Lpez Ruiz

5151

Creacin de Tablas NuevasCREATE TABLE tabla (campo1 tipo (tamao) ndice1 , campo2 tipo (tamao) ndice2 , ..., ndice Parte multicampo , ... )tabla campo1 campo2 tipo tamao Descripcin

Es el nombre de la tabla que se va a crear. Es el nombre del campo o de los campos que se van a crear en la nueva tabla. La nueva tabla debe contener, al menos, un campo. Es el tipo de datos de campo en la nueva tabla. (Ver Tipos de Datos) Es el tamao del campo slo se aplica para campos de tipo texto.

ndice1 Es una clusula CONSTRAINT que define el tipo de indice a ndice2 crear. Esta clusula en opcional. Es una clusula CONSTRAINT que define el tipo de indice ndice multicampos a crear. Un ndice multi campo es aquel que multicam est indexado por el contenido de varios campos. Esta pos clusula en opcional.M. en C. Gabriela de Jess Lpez Ruiz [email protected]

Tipos de datosTipo de Datos Longitud Descripcin Un valor en punto flotante de doble precisin con un rango de -1.79769313486232*10308a -4.94065645841247*10-324para valores negativos, 4.94065645841247*10-324a 1.79769313486232*10308para valores positivos, y 0. Un entero corto entre -32,768 y 32,767. Un entero largo entre -2,147,483,648 y 2,147,483,647.

DOUBLE

8 bytes

SHORT LONG LONGTEXT LONGBINARY TEXT

2 bytes 4 bytes

1 byte por De cero a un mximo de 1.2 gigabytes. carcter Segn se De cero 1 gigabyte. Utilizado para objetos OLE. necesite 1 byte por De cero a 255 caracteres. caracter

M. en C. Gabriela de Jess Lpez Ruiz [email protected]

PHP

M. en C. Gabriela de Jess Lpez Ruiz

5454

INTRODUCCIN: Diferencias entre ASP y PHP

t i v e SP Hv e r HP a g e s e x t P r e p r o er P: ypert

Software propietario

l l l

Free Software

l l

Plataformas Microsoft Varios lenguajes (VBScript, JScript)

Multiplataforma Un solo lenguaje: PHP

M. en C. Gabriela de Jess Lpez Ruiz

5555

Caractersticas de PHPl l l l l

Lenguaje ms fcil y potente Ms rpido que ASP Integracin perfecta con 8 servidores HTTP Acceso a 20 tipos de Bases de Datos Diseo modular de fcil ampliacin Licencia abiertaM. en C. Gabriela de Jess Lpez Ruiz 5656

Historia y DesarrolladoresFechas Inicio del desarrollo en otoo de 1994 PHP Versin 1 en primavera 1995 PHP Versin 2 1995-1997 PHP Versin 3 1997-2000 PHP Versin 4 en el segundo trimestre de 2000 Equipo de Desarrollo (195 personas) Zeev Suraski y Andi Gutmans (Israel) Shane Caraveo (Florida) Stig Bakken (Norway) Andrei Zmievski (Lincoln, Nebraska) Sascha M. en C. Gabriela de Jess Schumann (Dortmund,Lpez Ruiz

5757

Estadsticas de uso

M. en C. Gabriela de Jess Lpez Ruiz

5858

Estadsticas de uso

Fuente: Netcraft Agosto 2000

3,314,634 Dominios, 637,746 Direcciones IP 19,823,296 Dominios analizados PHP instalado en el 16.7% de todos los dominios 1,322,329 Servidores Apache analizados 429,589 (32.49%) PHP 247,642 (18.73%) Frontpage 133,414 (10.09%) mod_perl 111,576 (8.44%) mod_ssl 78,030 (5.90%) OpenSSL 46,404 (3.51%) ApacheJServ

Fuente: SecuritySpace.com Septiembre 2000 Informe sobre Mdulos Apache

M. en C. Gabriela de Jess Lpez Ruiz

5959

Plataformas soportadasPlataformas (actualidad): Plataformas (en perparacin): UNIX (todas las variantes) OS/390 Win32 (NT/W95/W98/W2000) AS/400 QNX Mac (WebTen) OS/2 BeOS Servidores: Apache (UNIX,Win32) CGI fhttpd ISAPI (IIS, Zeus) NSAPI (Netscape iPlanet) Java servlet AOLServer Roxen Servidores (en preparacin): Apache 2.0 WSAPI (O'Reilly WebSite) phttpd thttpd

M. en C. Gabriela de Jess Lpez Ruiz

6060

Bases de datos soportadasSQL

Otros Adabas D Empress IBM DB2 Informix Ingres Interbase Frontbase mSQL Direct MS-SQL MySQL ODBC Oracle (OCI7,OCI8) PostgreSQL Raima Velocis Solid Sybase

dBase filePro (slo lectura) dbm (ndbm, gdbm, Berkeley db)

M. en C. Gabriela de Jess Lpez Ruiz

6161

PHPEl lenguaje PHP es un lenguaje de programacin de estilo clsico, es decir, es un lenguaje de programacin con variables, sentencias condicionales, bucles, funciones. Observar: Que PHP no es un lenguaje de marcas como podra ser HTML, XML o WML. Est mas cercano a JavaScript o a C.

M. en C. Gabriela de Jess Lpez Ruiz

6262

PHPA diferencia de JavaScript que se ejecuta en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podra ser una base de datos.

Haga clic para modificar el estilo de texto del El programa PHP es ejecutado Segundo nivel en el servidor y el resultado Tercer nivel enviado al navegador. El resultado es Cuarto nivel normalmente una pgina HTML pero igualmente podra ser una Quinto nivelpagina WML.

M. en C. Gabriela de Jess Lpez Ruiz

6363

PHPAl ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del navegador, pero sin embargo para que sus pginas PHP funcionen, el servidor donde estn alojadas debe soportar PHP. La ventaja que tiene PHP sobre otros lenguajes de programacin que se ejecutan en el servidor (como podran ser los script CGI Perl), es que nos permite intercalar las sentencias PHP en las paginas HTML.

M. en C. Gabriela de Jess Lpez Ruiz

6464

PHP

M. en C. Gabriela de Jess Lpez Ruiz

6565

PHP

M. en C. Gabriela de Jess Lpez Ruiz

6666

PHP - VariablesUna variable es un contenedor de informacin, en el que podemos meter nmeros enteros, nmeros decimales, caracteres ... el contenido de las variables se puede leer y se puede cambiar durante la ejecucin de una pgina PHP (antes de que lo vea el cliente). En PHP todas las variables comienzan con el smbolo de peso $ 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 caracteres.

M. en C. Gabriela de Jess Lpez Ruiz

6767

PHP Variables - Ejemplo

M. en C. Gabriela de Jess Lpez Ruiz

6868

PHP Variables - EjemploExisten 2 tipos de variables: Las variables locales.- solo pueden ser usadas dentro de funciones. Las variables globales.- tienen su mbito de uso fuera de las funciones, podemos acceder a una variable global desde una funcin con la instruccin global nombre_variable;

M. en C. Gabriela de Jess Lpez Ruiz

6969

PHP AritmticosLos operadores de PHP son muy parecidos a los de C y JavaScript. Estos son los operadores que se pueden aplicar a las variables y constantes numricas.

M. en C. Gabriela de Jess Lpez Ruiz

7070

PHP Aritmticos - Ejemplo

M. en C. Gabriela de Jess Lpez Ruiz

7171

PHP ComparacinLos operadores de comparacin son usados para comparar valores y as poder tomar decisiones.

M. en C. Gabriela de Jess Lpez Ruiz

7272

PHP Comparacin - Ejemplo

M. en C. Gabriela de Jess Lpez Ruiz

7373

PHP Operadores lgicosLos operadores lgicos son usados para evaluar varias comparaciones, combinando los posibles valores de estas.

M. en C. Gabriela de Jess Lpez Ruiz

7474

PHP Operadores lgicos - Ejemplo

M. en C. Gabriela de Jess Lpez Ruiz

7575

PHP CondicionalesLas 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.

if

e -

se l

M. en C. Gabriela de Jess Lpez Ruiz

7676

PHP Condicionales

La sentencia if ejecuta una serie de instrucciones u otras dependiendo de la condicin

M. en C. Gabriela de Jess Lpez Ruiz

7777

DelimitadoresArchivo .php echo 'Algunos editores (como el FrontPage) Slo entienden este mtodo';

M. en C. Gabriela de Jess Lpez Ruiz

7878

Delimitadores. Ejemplo.

20 OR Hour(time) Buenas noches. Buenos das.

M. en C. Gabriela de Jess Lpez Ruiz

7979

Delimitadores. Ejemplo.

Buenas noches. Buenos das.

M. en C. Gabriela de Jess Lpez Ruiz

8080

Delimitadores. Ejemplo.

M. en C. Gabriela de Jess Lpez Ruiz

8181

Fin de lnea

print( date("M d, Y H:i:s", time()) ); print ( date( "M d, Y H:i:s", time() )

) ;

M. en C. Gabriela de Jess Lpez Ruiz

8282

Comentarios

/* Comentarios estilo C. * Pueden extenderse durante varias lneas. */ // Comentarios estilo C++. Hasta fin de lnea. # Comentarios estilo Perl. Hasta fin de lnea.

M. en C. Gabriela de Jess Lpez Ruiz

8383

Variables. Declaracin y Uso.

NO hace falta declararlas Llevan delante el signo de peso $.$var_1 = 123; $var_2 = hola; $var_3 = $var_1 * 2;

M. en C. Gabriela de Jess Lpez Ruiz

8484

Variables. Tipado.

Variables dbilmente tipadas (tipo mixed).$mi_variable $mi_variable $mi_variable $mi_variable = = = = Inicializamos como texto; 3; // Entero. 3.14 * $mi_variable; // Float. new MiClase(); // Objeto.

M. en C. Gabriela de Jess Lpez Ruiz

8585

Variables. Tipado.

Conversin automtica.

PHP realiza conversiones automticas de tipo: $mivar = 123; echo $mivar; // Se convierte a string $mivar = 3; // Se convierte a entero $mivar = 2 + $mivar; // para realizar la suma

M. en C. Gabriela de Jess Lpez Ruiz

8686

Variables. Tipado.

Conversin explcita.

Operador cast:$mivar = (string)123;

Cabiar el tipo de una variable:$mivar = 12; settype($mivar, "double");

M. en C. Gabriela de Jess Lpez Ruiz

8787

Variables. mbito.

En el cuerpo de un fichero, las variables son GLOBALES al fichero y ficheros incluidos. En una funcin, son LOCALES a esa funcin. Dentro de una clase, slo pueden ser accedidas a travs del operador -> sobre el nombre del objeto.

M. en C. Gabriela de Jess Lpez Ruiz

8888

Referencias.

Se definen con el carcter &: $alias = &$variable

Se puede eliminar una referencia con la funcin unset(): $a = 1; $b = &$a; unset ($a); // Pero $b sigue valiendo 1

M. en C. Gabriela de Jess Lpez Ruiz

8989

Tipos de datos.

Enteros, en decimal, octal o hexadecimal. $MiVar = 123; Punto flotante. $MiVar = 1.3e4; Arrays. $MiVar[2] = 123; Strings. $MiVar = Cadena de texto\n; Objetos: $MiVar = new MiClase();M. en C. Gabriela de Jess Lpez Ruiz 9090

Tipos de datos. Arrays.

$MiArray[0] = 1; $MiArray[1] = hola!!; $MiArray[] = 3; echo $MiArray[2]; // 3

M. en C. Gabriela de Jess Lpez Ruiz

9191

Tipos de datos. Arrays (2). Funcionan como vectores: $MiArray[nombre] = Homer; echo $MiArray[0]; // 1 echo $MiArray[nombre]; // Homer Y pueden tener ms de una dimensin: $MiOtroArray[1][pepe][4] = 3 dimensiones!;M. en C. Gabriela de Jess Lpez Ruiz 9292

Tipos de datos. Arrays (3).

Tambin se pueden definir con el constructor array() : $OtroArrayMas = array( 1, hola, 5); $YOtroArray = array( 0 => 1, 1 => hola, 2 => 5, 3 => 8, nombre => Homer );

M. en C. Gabriela de Jess Lpez Ruiz

9393

Tipos de datos. Strings. Comillas dobles.

Si se delim itan entre com illas dobles (), se expandir cualquier variable que haya dentro de la cadena. Adem s, se pueden incluir ciertas secuencias de escape, al igual que en C :S ecu en cia S ig n ifica d o \n N ueva lnea \r R etorno de carro \t Tabulaci horizontal n \\ B arra invertida \$ S m bolo del dlar \" D obles com illas \[0-7]{1,3} C arcter en octal \x[0-9A-Fa-f]{1,2}C arcter en hexadecim al

M. en C. Gabriela de Jess Lpez Ruiz

9494

Tipos de datos. Strings (2).

Comillas simples.

Si se delimitan entre comillas simples (), las variables no se expanden y adems las nicas secuencias de escape que se reconocen son \\ y \' (barra invertida y comillas simples.)

M. en C. Gabriela de Jess Lpez Ruiz

9595

Tipos de datos. Strings (4).Para concatenar cadenas se utiliza el operador . :$cad = A esta cadena ; $cad = $cad . le vamos a aadir ms texto.;

Se puede acceder a cada carcter como si fuera un array:$cad2 = Tercer carcter de \$cad : $cad[2];

M. en C. Gabriela de Jess Lpez Ruiz

9696

Constantes.Las constantes se definen con la funcin define():define(SALUDO, Hola, mundo!); echo La constante SALUDO vale . SALUDO; Las constantes en PHP se diferencian de las variables en que:

no llevan el smbolo del dlar delante. puede accederse a ellas desde cualquier parte del cdigo donde han sido definidas, sin restricciones de mbito como en las variables. no pueden ser redefinidas o borradas una vez definidas. slo pueden contener valores escalares, no vectores.M. en C. Gabriela de Jess Lpez Ruiz 9797

Maysculas y minsculas.

Comportamiento funciones:

mixto

en

variables

y

En las variables, las maysculas y minsculas IMPORTAN. En los nombres de funciones y palabras reservadas, las maysculas NO IMPORTAN.M. en C. Gabriela de Jess Lpez Ruiz 9898

Operadores aritmticos.

Operacin $a + $b $a - $b $a * $b $a / $b $a % $b

Nombre Suma Resta Multiplicacin Divisin Mdulo

Resultado Suma de $a y $b. Diferencia entre $a y $b. Producto de $a y $b. Cociente de $a y $b. Resto de la operacin $a/$b.

M. en C. Gabriela de Jess Lpez Ruiz

9999

Auto-incremento y auto-decremento.

Operacin Nombre ++$a $a++ --$a $a--

Resultado Incrementa $a en 1, y Pre-incremento devuelve $a (incrementado). Devuelve $a, y despus lo Post-incremento incrementa en 1. Decrementa $a en 1, y Pre-decremento despus lo devuelve. Devuelve $a, y despus lo Post-decremento incrementa en 1.

M. en C. Gabriela de Jess Lpez Ruiz

100100

Operadores de bits.Operacin Nombre $a & $b $a | $b $a ^ $b ~ $a $a > $b Resultado Se ponen a 1 los bits que estn a Y 1 en $a y $b. Se ponen a 1 los bits que estn a O 1 en $a o $b. Se ponen a 1 los bits que estn a O Exclusivo 1 en $a o $b, pero no en ambos. Se invierten los bits (se cambian 1 No por 0 y viceversa.) Desplaza $b posiciones a la Desp. Izq. izquierda todos los bits de $a. Desplaza $b posiciones a la Desp. Drch. derecha todos los bits de $a.M. en C. Gabriela de Jess Lpez Ruiz 101101

Operadores lgicos.

Operacin Nombre $a and $b Y $a or $b O $a xor $b ! $a $a && $b $a || $b

Resultado Cierto si $a Cierto si $a Cierto si $a O Exclusivo. ambos. No Cierto si $a Y Cierto si $a O Cierto si $a

y $b son ciertos. o $b es cierto. o $b es cierto, pero no es falso. y $b son ciertos. o $b es cierto.

M. en C. Gabriela de Jess Lpez Ruiz

102102

Operadores. Asignacin, igualdad e identidad.

Operacin Nombre

Resultado Asigna el valor de una variable o $a = $b Asignacin expresin del segundo trmino a la variable del primer trmino. Compara si el valor de los dos $a == $b Igualdad operandos es el mismo. Compara si el valor es el mismo y, $a === $b Identidad adems, el tipo coincide.

M. en C. Gabriela de Jess Lpez Ruiz

103103

Operadores. Asignacin, igualdad e identidad. Ejemplo.

$var1 = 1; // $var2 = 1; $var3 = 1; ($var1 == $var2) ($var1 == $var3) ($var1 === $var2) ($var1 === $var3)

Asignacin // // // // Cierto, son iguales Son iguales (tras conversin) Cierto, son idnticas FALSO, el tipo no coincide

M. en C. Gabriela de Jess Lpez Ruiz

104104

Operadores. Asignacin, igualdad e identidad. Error.

$var1 = 1; $var2 = 2; if( $var1 = $var2 ) { echo iguales; } else { echo distintas; }

M. en C. Gabriela de Jess Lpez Ruiz

105105

Comparaciones.

Operacin Nombre

Resultado Cierto si el valor de $a no es $a != $b No igual igual al de $b. Cierto si $a no es igual a $b, o $a !== $b No idntico si no tienen el mismo tipo. Cierto si $a es estrictamente $a < $b Menor que menor que $b. Cierto si $a es estrictamente $a > $b Mayor que mayor que $b. Cierto si $a es menor o igual $a = $b Mayor o igual que que $b.

M. en C. Gabriela de Jess Lpez Ruiz

106106

Operadores de cadenas.

$a = 1; $b = 2; $c = El resultado de . $a . + . $b . es . $a + $b;

M. en C. Gabriela de Jess Lpez Ruiz

107107

Atajos en la asignacin.

+=

-=

*=

/=

%=

&=

^=

.=

>>=

y

= 1;

// $var1 = $var1 + 3; // $var2 = $var2 / 2; // $var3 = $var3 >> 1;

M. en C. Gabriela de Jess Lpez Ruiz

108108

Precedencia.

, or xor and print = += -= *= /= .= %= &= |= ^= ~= = ?: || && |

^ & == != === !== < >= > +-. */% ! ~ ++ -- (int) (double) (string) (array) (object) @ [ new

M. en C. Gabriela de Jess Lpez Ruiz

109109

Estructuras de control.

if elseif else

if (expresin) { comandos } if (expresin) { comandos_cierto } else { comandos_falso }

M. en C. Gabriela de Jess Lpez Ruiz

110110

Estructuras de control.

if elseif else (2)

if (expresion1) { comandos1 } elseif (expresion2) { comandos2 } elseif (expresion3) { comandos3 } ... else { comandosElse }

M. en C. Gabriela de Jess Lpez Ruiz

111111

while y do while

while (expresin) { comandos } do { comandos } while (expresin);

M. en C. Gabriela de Jess Lpez Ruiz

112112

forfor (expresin1; expresin2; expresin3) { comandos } $factorial5 = 1; for ($i = 2; $i . Tiene aos.

M. en C. Gabriela de Jess Lpez Ruiz

132132

Forms.

Valores mltiples.

name=menu[]> Tortilla Paella Fabada Lentejas M. en C. Gabriela de Jess Lpez Ruiz 133133

Cookies.

int setcookie (string nombre [, string valor [, int fin [, string camino [, string dominio [, int seguro]]]]]) setcookie(PruebaCookie, expirar dentro de una hora, time() + 3600); setcookie(PruebaCookie, , time());

M. en C. Gabriela de Jess Lpez Ruiz

134134

Sesiones.

bool session_start(void); bool session_register (mixed name [, mixed ...]) bool session_destroy(void); // Ejemplo, un contador session_start(); print($contador); $contador++; session_register("contador");