Está en la página 1de 30

Desarrollo PHP con Webmatrix

lvaro Gmez Gimnez


UAM.NET

25-11-2011

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

1 / 30

Contenidos
1

Introduccin a PHP Integracin con HTML Declaracin de variables Arrays Sentencias condicionales Bucles Variables GET y POST Sesiones en PHP Interaccin 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 Conclusin
(UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 2 / 30

lvaro Gmez Gimnez

Introduccin a PHP

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

3 / 30

Integracin con HTML

Cdigo fuente en el servidor.


1 2 3 4 5 6 7 8 9 10 11 12 13 ?> </ b o d y> </ h t m l> echo $a ; <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.


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

7 8

$ a="<b>H o l a

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

4 / 30

Declaracin de variables
Las variables deben ir precedidas por el smbolo $. PHP distingue entre maysculas y minsculas.
1 2 3 4 5 6 7 ?> echo $ c a d e n a . $numero ; <?p h p / Variables

$ c a d e n a=" H o l a , " ; $ n u m e r o =3+5;

Salida
Hola,8

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

5 / 30

Array normal
Forma A:
1 2 3 4 5 6 7 8 9 ?> echo echo echo echo $a [ 0 ] ; $a [ 1 ] ; $a [ 2 ] ; $a [ 3 ] ; <?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 " , " Uno " , " Dos " , " Tres " ) ;

$a [ 0 ] = " Cero " ; $ a [ 1 ] = " Uno " ; $ a [ 2 ] = " Dos " ; $a [ 3 ] = " T r e s " ; echo echo echo echo $a [ 0 ] ; $a [ 1 ] ; $a [ 2 ] ; $a [ 3 ] ;

Salida

CeroUnoDosTres

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

6 / 30

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 : " ; $a [ " nombre " ] ; "<b r />" ; " Apellido : " ; $a [ " a p e l l i d o " ] ; "<b r />" ; " Email : " ; $a [ " e m a i l " ] ; <?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 [ " n o m b r e " ]= " J u a n " ; $ a [ " a p e l l i d o " ]= " L p e z " ; $ a [ " e m a i l " ]= " j u a n @ w e b s i t e . com " ;

" a p e l l i d o "= >" L p e z " , " e m a i l "= >" j u a n @ w e b s i t e . com " ) ;

echo echo echo echo echo echo echo echo

" Nombre : " ; $a [ " nombre " ] ; "<b r />" ; " Apellido : " ; $a [ " a p e l l i d o " ] ; "<b r />" ; " Email : " ; $a [ " e m a i l " ] ;

Salida

Nombre:Juan Apellido:Lpez Email:juan@website.com


lvaro Gmez Gimnez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 7 / 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; $ b =4; i f ( $a > $b ) { echo } } } ?> else echo else echo $ a . ">" . $ b ; i f ( $ a == $b ) $ a . "=" . $ b ; { $ a . "<" . $b ; {

Salida
5>4

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

8 / 30

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" ; echo break ; case 5: " Su valor es 5" ; echo break ; default : echo break ; " Su valor es $a " ; <?p h p / switch

$ a =7;

Salida

Su valor es 7

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

9 / 30

Bucles: for

1 2 3 4 5 6 7 8 9 10 11

<?p h p / for

$a [ 0 ] = " Cero " ; $ a [ 1 ] = " Uno " ; $ a [ 2 ] = " Dos " ; f o r ( $ i =0; $ i < s i z e o f ( $ a ) ; $ i ++){ echo echo } ?> $a [ $ i ] ; "<b r />" ;

Salida
Cero Uno Dos

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

10 / 30

Bucles: foreach

1 2 3 4 5 6 7 8 9 10 11

<?p h p / foreach

$a [ 0 ] = " Cero " ; $ a [ 1 ] = " Uno " ; $ a [ 2 ] = " Dos " ; f o r e a c h ( $a echo echo } ?> as $out ) {

$out ; "<b r />" ;

Salida
Cero Uno Dos

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

11 / 30

Bucles: while

1 2 3 4 5 6 7 8 9

<?p h p / while 0; ( $c < 10) {

$c = while

echo $ c ++; } ?>

$c . " , " ;

Salida

0,1,2,3,4,5,6,7,8,9,

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

12 / 30

Variables GET y POST (I)

Consulta del cliente


http://www.example.com/index.php?page=5 Cdigo para obtener las variables en la URL.
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"; " P a g e : " . $_GET [ " p a g e " ] ;

Salida
Page:5

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

13 / 30

Variables GET y POST (II)


Cdigo HTML para realizar el POST:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... <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> ... 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 . p h p " m e t h o d=" p o s t ">

Cdigo 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 " ] ; $ p a s s w o r d= $_POST [ " p a s s w o r d " ] ; echo echo " User : $user " ; " Password : $password " ;

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

14 / 30

Sesiones en PHP

La pgina 1 inicia la sesin y establece una variable.


1 2 3 4 5 6 7 8 ?> $_SESSION [ " u s e r " ]= " J u a n " ; echo echo "<a h r e f =\" p a g i n a 2 . p h p \">" ; 2</a>" ; " Pgina <?p h p / Pagina 1 1

La pgina 2 restaura dicha sesin y obtiene el valor de la variable.


<?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 . p h p \">" ; 1</a>" ; " Pgina i f ( i s s e t ( $_SESSION [ " u s e r " ] ) ) { echo echo $_SESSION [ " u s e r " ] ; "<b r />" ;

session_start ();

session_start ();

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

15 / 30

Interaccin 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.com ana@website.com

,y queremos realizar la siguiente consulta SQL:

Consulta
SELECT * FROM users WHERE username='admin' ,que devuelve la siguiente la: username admin password 1234 email admin@website.com

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

16 / 30

Interaccin con BBDD: MySQL (II)


Cdigo 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 : " . $ a r r a y [ " u s e r n a m e " ] . "<b r />" ; " P a s s w o r d : " . $ a r r a y [ " p a s s w o r d " ] . "<b r />" ; " Email : " . $ a r r a y [ " e m a i l " ] . "<b r />" ; / Obtencin = de los datos / Consulta <?p h p / Conexin con MySQL

/
" r o o t " , " 1234567890 " ) ; $link ) ;

$link

= mysql_connect ( " l o c a l h o s t " ,

m y s q l _ s e l e c t _ d b ( " database_name " ,

/
FROM users WHERE u s e r n a m e = '

$ u s e r n a m e=" a d m i n " ; $result = m y s q l _ q u e r y ( "SELECT ") ; $username '

$array

mysql_fetch_array ( $ r e s u l t ) ;

Salida

Username:admin Password:1234 Email:admin@website.com


lvaro Gmez Gimnez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 17 / 30

Interaccin con BBDD: MySQL (III)


Sobre la misma tabla

users en la base de datos:


password 1234 juan89 4n4p4sw0rd email admin@website.com juan@website.com ana@website.com

username admin juan ana

Queremos obtener todos los usuarios ordenados por

username:

Consulta
SELECT * FROM users ORDER BY username ,que devuelve la siguiente tabla: username admin ana juan
lvaro Gmez Gimnez (UAM.NET)

password 1234 4n4p4sw0rd juan89

email admin@website.com ana@website.com juan@website.com


25-11-2011 18 / 30

Desarrollo PHP con Webmatrix

Interaccin 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 ms las y devuelve FALSE.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ?> } / Obtencin echo echo echo de los datos / Consulta <?p h p / Conexin con MySQL

/
" r o o t " , " 1234567890 " ) ; $link ) ;

$link

= mysql_connect ( " l o c a l h o s t " ,

mysql_select_db ( " catsandco " ,

/
FROM users ORDER BY username ") ;

$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 : " . $row [ " u se r na me " ] . " , " ; " P as sw ord : " . $row [ " p a s s w o r d " ] . " , " ; " Email : " . $ r o w [ " e m a i l " ] . "<b r />" ;

Salida

Username:admin,Password:1234,Email:admin@website.com Username:ana,Password:4n4p4sw0rd,Email:ana@website.com Username:juan,Password:juan89,Email:juan@website.com


lvaro Gmez Gimnez (UAM.NET) Desarrollo PHP con Webmatrix 25-11-2011 19 / 30

Otras variables superglobales: $_FILES

Utilizamos el siguiente formulario para subir un archivo:


1 2 3 4 5 6 7 8 9 10 11 ... <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 . 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 Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

20 / 30

Otras variables superglobales: $_FILES


Cdigo 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 " ] , $_FILES [ " f i l e " ] [ " name " ] ) ; echo echo echo echo " Archivo : " Tipo : " . " " Tamao : " Archivo " . . $_FILES [ " f i l e " ] [ " name " ] ; ( $_FILES [ " f i l e " ] [ " s i z e " ] " . / 1024). " Kb" ; $_FILES [ " f i l e " ] [ " t y p e " ] ; $_FILES [ " f i l e " ] [ " tmp_name " ] ; no existe , 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 Comprobacin de errores al si subir el

/
> 0){ a r c h i v o </b>" ) ; 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

/
{ "); 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 " ] . "

else

temporal :

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

21 / 30

Otras variables superglobales: $_SERVER


Se puede utilizar la variable superglobal $_SERVER para acceder a informacin til sobre el servidor y el entorno.
1 2 3 4 5 6 ?> <?p h p echo echo echo echo " F i c h e r o : " . $_SERVER [ "PHP_SELF" ] . "<b r />" ; " S e r v i d o r : " . $_SERVER [ "SERVER_NAME" ] . "<b r />" ; " S o f t w a r e : " . $_SERVER [ "SERVER_SOFTWARE" ] . "<b r />" ; " U s e r A g e n t : " . $_SERVER [ "HTTP_USER_AGENT" ] . "<b r />" ;

Salida
Fichero:/pagina1.php Servidor:localhost Software:Microsoft-IIS/7.5 User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Firefox/5.0

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

22 / 30

Funcione C Style: Manejo de cheros


Se pueden utilizar las funciones clsicas de manejo de cheros con la misma sintxis que en C. Veamos un ejemplo de apertura y volcado de un chero:
1 2 3 4 5 6 7 8 9 10 11 ?> } fclose ( $file ) ; } while (! feof ( $ f i l e ) ){ $ l i n e a=f g e t s ( $ f i l e , 4 0 9 6 ) ; echo $linea ; <?p h p i f ( ! $ f i l e =f o p e n ( " h t t p : / / www . g o o g l e . e s / i n d e x . h t m l " , echo exit ; " Error al abrir el archivo " ; "r") ){

Adems estn disponibles funciones como: fread() fgetc() fwrite()

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

23 / 30

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 () ; $a >d i s p l a y V a 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>" ;

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

// D e c l a r a c i n d e l mtodo
public function $this displayVar () ; { echo

>v a r

Salida

Constructor de la clase

Hola Mundo
lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

24 / 30

Construyendo un foro con PHP y Webmatrix

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

25 / 30

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 juan@website.com image images/default.png images/default.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 Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

Estructura de cheros I
La estructura general de cheros que utilizaremos para gestionar los usuarios y los comentarios en el tabln es la siguiente:

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

27 / 30

Estructura de cheros II
Para conservar la estructura de la pgina utilizaremos en todos ellos el siguiente formato: Cdigo 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 () ; <? p h p i n c l u d e ( " f u n c t i o n s . php " ) ; get_header ( ) ;

C o n t e n i d o >

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

28 / 30

Conclusin

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

29 / 30

Contacto

Email Web

jokenhl@gmail.com http://www.j0k3n.com

Recursos
http://www.j0k3n.com/websrc/

lvaro Gmez Gimnez

(UAM.NET)

Desarrollo PHP con Webmatrix

25-11-2011

30 / 30

También podría gustarte