Está en la página 1de 30

Desarrollo PHP con Webmatrix

Álvaro Gómez Giménez
UAM.NET

25-11-2011

Álvaro Gómez Giménez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

1 / 30

Contenidos
1

2

3

Introducción a PHP Integración con HTML Declaración de variables Arrays Sentencias condicionales Bucles Variables GET y POST Sesiones en PHP Interacción con BBDD: MySQL Otras variables superglobales Funciones C Style PHP Orientado a objetos Construyendo un foro con PHP y Webmatrix Estructura de la base de datos Estructura de cheros Conclusión
(UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 2 / 30

Álvaro Gómez Giménez

Introducción a PHP

Álvaro Gómez Giménez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

3 / 30

7 8 $ a="<b>H o l a Álvaro Gómez Giménez (UAM. <h t m l> <h e a d> < t i t l e >H o l a </ h e a d> <b o d y> <b>H o l a </ b o d y> </ h t m l> Mundo</ b> Mundo</ t i t l e > ∗/ Mundo</b>" . 1 2 3 4 5 6 7 8 9 10 11 12 13 ?> </ b o d y> </ h t m l> echo $a .Integración con HTML Código fuente en el servidor.NET) Desarrollo PHP con Webmatrix 25-11-2011 4 / 30 . <h t m l> <h e a d> < t i t l e >H o l a </ h e a d> <b o d y> <? p h p /∗ Comment Mundo</ t i t l e > 1 2 3 4 5 6 Salida en el lado del cliente.

" . Salida Hola.NET) Desarrollo PHP con Webmatrix 25-11-2011 5 / 30 .8 Álvaro Gómez Giménez (UAM. $ n u m e r o =3+5. PHP distingue entre mayúsculas y minúsculas. $numero . <?p h p /∗ Variables ∗/ $ c a d e n a=" H o l a .Declaración de variables Las variables deben ir precedidas por el símbolo $. 1 2 3 4 5 6 7 ?> echo $ c a d e n a .

Salida CeroUnoDosTres Álvaro Gómez Giménez (UAM. $ a [ 1 ] = " Uno " . " Uno " . <?p h p /∗ Array 1 Forma B: <?p h p /∗ Array ∗/ 2 3 4 5 6 7 8 9 10 11 12 ?> ∗/ $a = a r r a y ( " C e r o " . $a [ 3 ] .NET) Desarrollo PHP con Webmatrix 25-11-2011 6 / 30 . echo echo echo echo $a [ 0 ] . $a [ 3 ] = " T r e s " . $ a [ 2 ] = " Dos " . $a [ 1 ] . $a [ 1 ] . $a [ 0 ] = " Cero " . " Tres " ) .Array normal Forma A: 1 2 3 4 5 6 7 8 9 ?> echo echo echo echo $a [ 0 ] . $a [ 2 ] . " Dos " . $a [ 2 ] . $a [ 3 ] .

"<b r />" .Array asociativo Forma A: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ?> echo echo echo echo echo echo echo echo " Nombre : " . "<b r />" . <?p h p /∗ Array 1 Forma B: <?p h p /∗ Array ∗/ 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ?> ∗/ $a = a r r a y ( " n o m b r e "= >" J u a n " . $ a [ " a p e l l i d o " ]= " L ó p e z " . Salida Nombre:Juan Apellido:López Email:juan@website. " Email : " . com " ) . " Apellido : " . " a p e l l i d o "= >" L ó p e z " . $a [ " a p e l l i d o " ] . $a [ " e m a i l " ] . $ a [ " n o m b r e " ]= " J u a n " . " e m a i l "= >" j u a n @ w e b s i t e . $a [ " e m a i l " ] . " Email : " . $a [ " nombre " ] . "<b r />" . $ a [ " e m a i l " ]= " j u a n @ w e b s i t e . echo echo echo echo echo echo echo echo " Nombre : " . $a [ " nombre " ] .com Álvaro Gómez Giménez (UAM. " Apellido : " . "<b r />" .NET) Desarrollo PHP con Webmatrix 25-11-2011 7 / 30 . $a [ " a p e l l i d o " ] . com " .

$b . ">" . $ b .NET) Desarrollo PHP con Webmatrix 25-11-2011 8 / 30 .Sentencias condicionales: if else 1 2 3 4 5 6 7 8 9 10 11 12 13 <?p h p /∗ if else ∗/ $ a =5. "<" . { $ a . i f ( $ a == $b ) $ a . { Salida 5>4 Álvaro Gómez Giménez (UAM. $ b =4. i f ( $a > $b ) { echo } } } ?> else echo else echo $ a . "=" . $ b .

Sentencias condicionales: switch 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ?> } s w i t c h ( $a ) { case 1: " Su valor es 1" . default : echo break . Salida Su valor es 7 Álvaro Gómez Giménez (UAM. case 5: " Su valor es 5" .NET) Desarrollo PHP con Webmatrix 25-11-2011 9 / 30 . echo break . " Su valor es $a " . <?p h p /∗ switch ∗/ $ a =7. echo break .

$ a [ 1 ] = " Uno " . $ i ++){ echo echo } ?> $a [ $ i ] . "<b r />" . Salida Cero Uno Dos Álvaro Gómez Giménez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 10 / 30 . f o r ( $ i =0.Bucles: for 1 2 3 4 5 6 7 8 9 10 11 <?p h p /∗ for ∗/ $a [ 0 ] = " Cero " . $ a [ 2 ] = " Dos " . $ i < s i z e o f ( $ a ) .

f o r e a c h ( $a echo echo } ?> as $out ) { $out . $ a [ 2 ] = " Dos " . "<b r />" . Salida Cero Uno Dos Álvaro Gómez Giménez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 11 / 30 .Bucles: foreach 1 2 3 4 5 6 7 8 9 10 11 <?p h p /∗ foreach ∗/ $a [ 0 ] = " Cero " . $ a [ 1 ] = " Uno " .

3.6.5. Salida 0.9.1.8. " .2.7.Bucles: while 1 2 3 4 5 6 7 8 9 <?p h p /∗ while 0. " . } ?> $c . ( $c < 10) { ∗/ $c = while echo $ c ++.4. Álvaro Gómez Giménez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 12 / 30 .

Variables GET y POST (I) Consulta del cliente http://www. Salida Page:5 Álvaro Gómez Giménez (UAM. 1 2 3 4 5 6 7 ?> } <?p h p i f ( i s s e t ( $_GET [ " p a g e " ] ) ) { echo }else echo { "No se ha definido".example. $_GET [ " p a g e " ] .php?page=5 Código para obtener las variables en la URL. " P a g e : " .com/index.NET) Desarrollo PHP con Webmatrix 25-11-2011 13 / 30 .

..Variables GET y POST (II) Código HTML para realizar el POST: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 . t y p e=" p a s s w o r d " name=" p a s s w o r d " /> t y p e=" t e x t " name=" u s e r " /> a c t i o n =" i n d e x .. <f o r m <p> < l a b e l >U s e r :</ l a b e l > <i n p u t </ p> <p> < l a b e l >P a s s w o r d :</ l a b e l > <i n p u t </ p> <p a l i g n =" c e n t e r "> t y p e=" s u b m i t " v a l u e=" S e n d " name=" s u b m i t t e r " /> <i n p u t </ p> </ f o r m> . Álvaro Gómez Giménez (UAM. " Password : $password " . echo echo " User : $user " .. p h p " m e t h o d=" p o s t "> Código PHP para capturar el POST: 1 2 3 4 5 6 7 8 ?> } <?p h p i f ( i s s e t ($_POST [ " s u b m i t t e r " ] ) ) { $ u s e r= $_POST [ " u s e r " ] .NET) Desarrollo PHP con Webmatrix 25-11-2011 14 / 30 . $ p a s s w o r d= $_POST [ " p a s s w o r d " ] .

2</a>" . ∗/ ∗/ session_start (). p h p \">" . " Página i f ( i s s e t ( $_SESSION [ " u s e r " ] ) ) { echo echo $_SESSION [ " u s e r " ] . 1 2 3 4 5 6 7 8 ?> $_SESSION [ " u s e r " ]= " J u a n " . <?p h p /∗ Pagina 2 2 3 4 5 6 7 8 9 10 11 ?> } echo echo "<a h r e f =\" p a g i n a 1 . echo echo "<a h r e f =\" p a g i n a 2 . " Página <?p h p /∗ Pagina 1 1 La página 2 restaura dicha sesión y obtiene el valor de la variable.NET) Desarrollo PHP con Webmatrix 25-11-2011 15 / 30 . "<b r />" . session_start ().Sesiones en PHP La página 1 inicia la sesión y establece una variable. p h p \">" . Álvaro Gómez Giménez (UAM. 1</a>" .

NET) Desarrollo PHP con Webmatrix 25-11-2011 16 / 30 .com .com ana@website.Interacción con BBDD: MySQL (I) Tenemos la tabla users en la base de datos con los siguientes datos: username admin juan ana password 1234 juan89 4n4p4sw0rd email admin@website.com juan@website.y queremos realizar la siguiente consulta SQL: Consulta SELECT * FROM users WHERE username='admin' .com Álvaro Gómez Giménez (UAM.que devuelve la siguiente la: username admin password 1234 email admin@website.

Interacción con BBDD: MySQL (II) Código PHP para obtener los datos: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ?> echo echo echo " U s e r n a m e : " . $username ' ∗/ $array mysql_fetch_array ( $ r e s u l t ) . m y s q l _ s e l e c t _ d b ( " database_name " . $link ) .NET) Desarrollo PHP con Webmatrix 25-11-2011 17 / 30 . /∗ Obtención = de los datos /∗ Consulta <?p h p /∗ Conexión con MySQL ∗/ " r o o t " . Salida Username:admin Password:1234 Email:admin@website. ∗/ ∗ FROM users WHERE u s e r n a m e = ' $ u s e r n a m e=" a d m i n " . " 1234567890 " ) . $link = mysql_connect ( " l o c a l h o s t " . " Email : " . $ a r r a y [ " e m a i l " ] . "<b r />" .com Álvaro Gómez Giménez (UAM. "<b r />" . "<b r />" . $result = m y s q l _ q u e r y ( "SELECT ") . " P a s s w o r d : " . $ a r r a y [ " p a s s w o r d " ] . $ a r r a y [ " u s e r n a m e " ] .

com juan@website.com juan@website.com ana@website.NET) password 1234 4n4p4sw0rd juan89 email admin@website.com ana@website.com username admin juan ana Queremos obtener todos los usuarios ordenados por username: Consulta SELECT * FROM users ORDER BY username .Interacción con BBDD: MySQL (III) Sobre la misma tabla users en la base de datos: password 1234 juan89 4n4p4sw0rd email admin@website.com 25-11-2011 18 / 30 Desarrollo PHP con Webmatrix .que devuelve la siguiente tabla: username admin ana juan Álvaro Gómez Giménez (UAM.

$result = m y s q l _ q u e r y ( "SELECT ∗/ w h i l e ( $row = mysql_fetch_array ( $ r e s u l t ) ) { " Username : " . $link ) . " Email : " .Email:juan@website. " 1234567890 " ) . $row [ " p a s s w o r d " ] . mysql_select_db ( " catsandco " .Email:ana@website.Password:juan89.com Álvaro Gómez Giménez (UAM.Interacción con BBDD: MySQL (IV) Cada llamada a mysql_fetch_array devuelve un array asociativo con la siguiente la de la consulta hasta que no hay más las y devuelve FALSE.Password:1234. $link = mysql_connect ( " l o c a l h o s t " . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ?> } /∗ Obtención echo echo echo de los datos /∗ Consulta <?p h p /∗ Conexión con MySQL ∗/ " r o o t " . Salida Username:admin. $ r o w [ " e m a i l " ] . " . $row [ " u se r na me " ] . "<b r />" . " . " P as sw ord : " .com Username:ana.NET) Desarrollo PHP con Webmatrix 25-11-2011 19 / 30 .com Username:juan.Password:4n4p4sw0rd.Email:admin@website. " . " . ∗/ ∗ FROM users ORDER BY username ") .

<f o r m <p> < l a b e l > A r c h i v o :</ l a b e l > <i n p u t </ p> <p> <i n p u t </ p> </ f o r m> . t y p e=" s u b m i t " name=" s u b m i t t e r " v a l u e=" S u b i r " /> t y p e=" f i l e " name=" f i l e " /> a c t i o n =" u p l o a d ..NET) Desarrollo PHP con Webmatrix 25-11-2011 20 / 30 . p h p " d a t a "> m e t h o d=" p o s t " e n c t y p e=" m u l t i p a r t / f o r m − Álvaro Gómez Giménez (UAM..Otras variables superglobales: $_FILES Utilizamos el siguiente formulario para subir un archivo: 1 2 3 4 5 6 7 8 9 10 11 ...

existe . ( f i l e _ e x i s t s ( $_FILES [ " f i l e " ] [ " name " ] ) ) d i e ( $_FILES [ " f i l e " ] [ " name " ] . ( $_FILES [ " f i l e " ] [ " s i z e " ] " . / 1024). echo echo echo echo " Archivo : " Tipo : " . lo copiamos al directorio actual <?p h p i f ( i s s e t ($_POST [ " s u b m i t t e r " ] ) ) { /∗ if Comprobación de errores al si subir el ∗/ > 0){ a r c h i v o </b>" ) . $_FILES [ " f i l e " ] [ " name " ] . . existe ya el ( $_FILES [ " f i l e " ] [ " e r r o r " ] d i e ( "<b>E r r o r { Comprobamos }else /∗ if fichero ∗/ { ").Otras variables superglobales: $_FILES Código PHP para obtener el archivo: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ?> } } } } /∗ Si { m o v e _ u p l o a d e d _ f i l e ( $_FILES [ " f i l e " ] [ " tmp_name " ] .NET) Desarrollo PHP con Webmatrix 25-11-2011 21 / 30 . $_FILES [ " f i l e " ] [ " tmp_name " ] . " ∗/ else temporal : Álvaro Gómez Giménez (UAM. " " Tamaño : " Archivo " . $_FILES [ " f i l e " ] [ " name " ] ) . no existe . $_FILES [ " f i l e " ] [ " t y p e " ] . " Kb" .

0 (Windows NT 6. WOW64.NET) Desarrollo PHP con Webmatrix 25-11-2011 22 / 30 . rv:5. " S o f t w a r e : " . Salida Fichero:/pagina1. "<b r />" . " U s e r −A g e n t : " . "<b r />" . $_SERVER [ "SERVER_NAME" ] . "<b r />" .0) Firefox/5.0 Álvaro Gómez Giménez (UAM.php Servidor:localhost Software:Microsoft-IIS/7.5 User-Agent:Mozilla/5.Otras variables superglobales: $_SERVER Se puede utilizar la variable superglobal $_SERVER para acceder a información útil sobre el servidor y el entorno. $_SERVER [ "PHP_SELF" ] . " S e r v i d o r : " . $_SERVER [ "HTTP_USER_AGENT" ] . "<b r />" . $_SERVER [ "SERVER_SOFTWARE" ] .1. 1 2 3 4 5 6 ?> <?p h p echo echo echo echo " F i c h e r o : " .

e s / i n d e x . echo $linea . " Error al abrir el archivo " . } while (! feof ( $ f i l e ) ){ $ l i n e a=f g e t s ( $ f i l e . "r") ){ Además están disponibles funciones como: fread() fgetc() fwrite() Álvaro Gómez Giménez (UAM. h t m l " . 4 0 9 6 ) . Veamos un ejemplo de apertura y volcado de un chero: 1 2 3 4 5 6 7 8 9 10 11 ?> } fclose ( $file ) . <?p h p i f ( ! $ f i l e =f o p e n ( " h t t p : / / www .NET) Desarrollo PHP con Webmatrix 25-11-2011 23 / 30 . echo exit . g o o g l e .Funcione C Style: Manejo de cheros Se pueden utilizar las funciones clásicas de manejo de cheros con la misma sintáxis que en C.

$a− >d i s p l a y V a r ( ) . // D e c l a r a c i ó n d e l método public function $this displayVar () .PHP Orientado a objetos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ?> $ a = new MiClase () . { echo − >v a r Salida Constructor de la clase Hola Mundo Álvaro Gómez Giménez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 24 / 30 . // C o n s t r u c t o r public function __construct ( ) de la { echo " Constructor c l a s e <b r />" . } } } <?p h p class { MiClase // D e c l a r a c i ó n de l a p r o p i e d a d public $var = "<b>H o l a Mundo</b>" .

Construyendo un foro con PHP y Webmatrix Álvaro Gómez Giménez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 25 / 30 .

NET) Desarrollo PHP con Webmatrix .png isadmin 1 0 id 1 2 username admin juan La tabla comments tendrá datos del tipo: id user_id fecha 1 2 1 1 2010-10-11 11:56:13 2010-10-11 11:29:23 texto Comentario 1 Comentario 2 25-11-2011 26 / 30 Álvaro Gómez Giménez (UAM.png images/default.Estructura de la base de datos Utilizaremos dos tablas con la siguiente estructura: La tabla users tendrá datos del tipo: password 1234 juan89 email admin@website.com image images/default.com juan@website.

NET) Desarrollo PHP con Webmatrix 25-11-2011 27 / 30 .Estructura de cheros I La estructura general de cheros que utilizaremos para gestionar los usuarios y los comentarios en el tablón es la siguiente: Álvaro Gómez Giménez (UAM.

php " ) .Estructura de cheros II Para conservar la estructura de la página utilizaremos en todos ellos el siguiente formato: Código fuente: 1 2 3 4 5 6 7 8 9 10 ?> ?> <d i v i d=" w r a p p e r "> < !− − </ d i v> <? p h p get_footer () . get_header ( ) .NET) Desarrollo PHP con Webmatrix 25-11-2011 28 / 30 . C o n t e n i d o −− > Álvaro Gómez Giménez (UAM. <? p h p i n c l u d e ( " f u n c t i o n s .

Conclusión Álvaro Gómez Giménez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 29 / 30 .

com http://www.j0k3n.Contacto Email Web jokenhl@gmail.com Recursos http://www.com/websrc/ Álvaro Gómez Giménez (UAM.j0k3n.NET) Desarrollo PHP con Webmatrix 25-11-2011 30 / 30 .