0% encontró este documento útil (0 votos)
39 vistas104 páginas

2 PHP

El documento habla sobre PHP, un lenguaje de programación para el desarrollo web. Explica qué es PHP, cómo funcionan los archivos PHP, las variables, y más conceptos básicos de este lenguaje.

Cargado por

malbicho4444
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas104 páginas

2 PHP

El documento habla sobre PHP, un lenguaje de programación para el desarrollo web. Explica qué es PHP, cómo funcionan los archivos PHP, las variables, y más conceptos básicos de este lenguaje.

Cargado por

malbicho4444
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PHP

PHP: Hypertext Preprocessor



Introduccin: que es PHP?
PHP es un lenguaje de scripting del lado del servidor, o sea los programas
escritos en PHP se ejecutan en una mquina remota (en el caso de estar
online)
!dems, PHP soporta muc"os tipos de #ases de datos con las cuales
interactuar ($y%&', In(ormix, )racle, %y#ase, %olid, Postgre%&', *eneric
)+,-, etc)
PHP es una poderosa "erramienta para la creacin de paginas .e#
interactivas
/s #astante recomenda#le, a la "ora de adentrarse en PHP, tener una #ase
so#re los lenguajes H0$' y 1avascript
PHP es de cdigo a#ierto y es tam#i2n li#re su uso y descarga

Introduccin: que es un arc"ivo
PHP?
'os arc"ivos PHP pueden contener texto, etiquetas H0$' y scripts
'os arc"ivos PHP, una ve3 procesados por el servidor, son devueltos al
navegador como H0$' plano, el cual el navegador puede interpretar sin
pro#lemas
'os arc"ivos PHP pueden tener la extensin p"p, p"p4 o p"tml, aunque la
ms utili3ada es la primera de estas
+entro de este curso tra#ajaremos con las #ases de datos $y%&', al cual
luego le dedicaremos un tiempo de estudio

Introduccin: que es $y%&'?
%in em#argo no viene mal una generali3acin y su relacin con PHP:
$y%&' es un servidor de #ases de datos
$y%&' es muy e(ica3 tanto para aplicaciones peque5as como muy grandes
$y%&' soporta el estandar %&', que luego estudiaremos en otro apartado
$y%&' tam#i2n existe para muc"as plata(ormas y es li#re de descargar y
utili3ar
$y%&' se com#ina con PHP para reali3ar acciones realmente potentes (#logs,
servidores de mail, portales de noticias, sistemas de multiusuario, etc) y esta
disponi#le en plata(ormas 6nix y 7indo.s

Introduccin: Por que utili3ar PHP?
PHP corre en varios de los sistemas operativos ms conocidos ()%, 7indo.s,
'inux)
PHP es compati#le con la mayor8a de los servidores estandars que existen
(!pac"e, II%, etc)
9ecordemos que nosotros podremos tra#ajar tanto en 7indo.s como en 'inux
PHP es li#re de ser #ajado desde su sitio .e# ...p"pnet
PHP es (acil de aprender y corre muy e(icientemente (rpido y sin errores) en
el lado del servidor

%intaxis
-omo dijimos, un arc"ivo o script en PHP se ejecuta y procesa en el servidor, y
este devuelve al navegador un H0$' plano
'a sintaxis #sica de PHP indica que todo script escrito en este lenguaje de#e
comen3ar con la etiqueta :?p"p y terminar con ?;
/stos scripts pueden ser u#icados en cualquier parte del documento
'os servidores con soporte para a#reviaturas puede utili3ar la sintaxis asi:
:? contenido<del<script ?;
%in em#argo para una compati#ilidad mxima con todos los servidores se
recomienda utili3ar la primera de las sintaxis

%intaxis
6n arc"ivo PHP de#e tener extensin p"p
/ste tipo de arc"ivos normalmente contiene cdigo H0$' y alg=n tipo de script
PHP, como tam#i2n script en otros lenguajes como 1avascript
6n ejemplo de un codigo "tml simple ser8a:
:>+)-0?P/ "tml;
:"tml lang@es;
:#ody;
:?p"p
AA/sto es un comentario
ec"o BHola $undoBC
?;
:A#ody;
:A"tml;

%intaxis
!lgunas generalidades:
-ada linea de cdigo en PHP de#e ser terminada con un punto y coma (C), ya
que este es el s8m#olo que utili3a el interprete del servidor para separar una
instruccin de otra
-omo vemos en el primer ejemplo, la (uncin ec"o para imprimir en la pgina
que nos devuelve el servidor la in(ormacin que deseamos 6na (uncin similar
a la que se utili3a en %"ell %cript
'os comentarios dentro de los script PHP se reali3an mediante la do#le #arra
(AA) al igual que en Processing, y no "ace (alta ya decir que %I/$P9/ se de#e
comentar el cdigo en las situaciones que tengan la su(iciente di(icultad como
para necesitar de explicacin
'os comentarios en #loques se reali3an mediante AD DA, tam#i2n igual a
Processing

%intaxis
/jemplo:
:"tml;
:#ody;
:?p"p
AA/sto es un comentario
AD
/sto es un #loque de
comentarios
DA
?;
:A#ody;
:A"tml;

Earia#les
-omo "emos visto en otros lenguajes, las varia#les son contenedores de
di(erentes tipos de in(ormacin, y en PHP esto no es la excepcin
%i #ien vimos muc"os tipos de varia#les, veremos como las maneja PHP
/n PHP las varia#les se utili3an para mantener di(erentes valores num2ricos o
expresiones de todo tipo
PHP permite varia#les con nom#re cortos, largos o descriptivos (x,
super(ragilistico o Fom#re!uto)
'as reglas para las varia#les en PHP son cinco:
G'as varia#les comien3an con el signo pesos (H) seguido del nom#re que le
queremos poner (Hin(ormatica)
G'as varia#les de#en comen3ar con una letra o con un guin #ajo
G'as varia#les solamente pueden contener caracteres al(anum2ricos y guiones
#ajos ( (!G3, IGJ, y < )
G'as varia#les son sensitivas a las mayusculas y minusculas (H/ste#an distinto
de Heste#an)

Earia#les G -reacin
PHP no tiene un comando espec8(ico para crear varia#les 6na varia#le es
creada solamente en el momento en que le asigno un valor
H$i!uto@B+unaBC
+espues de la ejecucin de esta linea, la varia#le H$i!uto toma el valor B+unaB
%i yo quiero crear una varia#le sin ningun valor, #asta con pasarle el valor null
+e esta manera, seg=n la asignacin que se "aga a la varia#le, esta
interpretar que tipo de dato contiene, por ejemplo en el siguiente ejemplo, creo
una varia#le string y una que contiene un n=mero:
:?p"p
Htxt@BHola amigos>BC
Hx@KLC
?;
Fotita: como se o#serva si yo quiero asignar un valor de texto a una varia#le,
uso comillas

Earia#les G -reacin
Por esto que vimos recien, se dice que PHP es un lenguaje que no tiene tipos
de datos
/n PHP una varia#le no necesita ser declarada antes de asignarle un valor
PHP convierte automaticamente las varia#les al tipo de datos correcto,
dependiendo unicamente de su valor
-omo vimos en otros casos, en un programa (uertemente tipado, las varia#les
primero se declaran seg=n el tipo que le queremos dar, y luego se le asigna un
valor que de#e ser del mismo tipo que se le declaro

Earia#les M !m#itos de aplicacin
/l m#ito de una varia#le en PHP (y en otros lenguajes) es la porcin de cdigo
en donde la varia#le puede ser re(erenciada, o sea la porcin de cdigo donde
la varia#le puede ser utili3ada y se reconoce como tal
PHP puede manejar di(erentes am#itos de varia#les:
G'ocal
G*lo#al
G%tatic

Earia#les M !m#ito local
6na varia#le declarada dentro de una (uncin de PHP, es de tipo local y puede
unicamente accederse a esta dentro de la (uncin:
/jemplo:
:?p"p
Ha @ NC AA varia#le glo#al
(unction my0est()
O
ec"o HaC AA varia#le local
P
my0est()C
?;
/ste programa no va a devolver nada a causa de que la (uncin ec"o se esta
re(iriendo al am#ito local de una varia#le, y a esta no se le "a asignado ning=n
valor dentro de la (uncin

Earia#les M !m#ito local
%e pueden tener nom#re de varia#les locales iguales, pero solo si estas se
encuentran en di(erentes (unciones, a causa de que las varia#les locales son
solo reconocidas en la (uncin donde aparecen
'as varia#les locales son #orradas luego de que la (uncin se "a completado

Earia#les M !m#ito glo#al
'as varia#les glo#ales se re(ieren a varia#les que estan de(inidas por (uera de
cualquier (uncin
%e puede acceder a estar varia#les en cualquier parte del script exceptuando el
interior de las (unciones
Para acceder a estas varia#les dentro de una (uncin, se de#e utili3ar la
pala#ra clave glo#al:
:?p"p
Ha @ NC
H# @ KIC
(unction my0est()
O
glo#al Ha, H#C
H# @ Ha Q H#C
P
my0est()C
ec"o H#C
?;
/ste script devuelve el n=mero KN

Earia#les M !m#ito glo#al
6na cosa interesante para sa#er, es que PHP guarda las varia#les glo#ales en
un array llamado H*'),!'%RindexS, donde index es el nom#re de la varia#le
que queremos llamar
/ste array es accesi#le dentro de los (unciones y puede ser utili3ado para
acceder a varia#les glo#ales de (orma directa Eemos el mismo ejemplo
reescrito:
:?p"p
Ha @ NC
H# @ KIC
(unction my0est()
O
H*'),!'%RT#TS @ H*'),!'%RTaTS Q H*'),!'%RT#TSC
P
my0est()C
ec"o H#C
?;

Earia#les M !m#ito static
-uando una (uncin es completada, todas sus varia#les locales son
normalmente #orradas
%in em#argo, algunas veces deseamos que estas varia#les no sean #orradas,
por que queremos utili3arlas nuevamente cuando se llame de nuevo la (uncin
Para esto se utili3a la pala#ra clave static ni #ien se crea y declara la varia#le:
static Hremem#er$eC
+e esta manera, cada ve3 que se llame a la (uncin, la varia#le tendra
guardado el valor que tuvo la =ltima ve3 que se llam a la (uncin
Por =ltimo vale aclarar, que este tipo de varia#le aun sigue siendo de am#ito
local, solo que se le indica que su in(ormacin no sea #orrada

Earia#les %trings
-omo vimos muc"as veces, una varia#le string es utili3ada para almacenar y
manipular texto
6na ve3 que asignamos un texto a una varia#le, este puede ser manipulado de
muc"as (ormas
6n string puede ser pasado directamente a una (uncin, o puede ser guardado
primero en una varia#le
Por ejemplo:
:?p"p
Htxt@BHola !migos>BC
ec"o HtxtC
ec"o BHola amigos>B
?;
/ste programita nos devolverU dos veces BHola !migos>B, uno a partir de una
varia#le, y otra por el simple pasaje de un string a la (uncin ec"o

Earia#les %trings
/xisten varios operadores que operan directamente so#re los strings
Por ejemplo el operador de concatenacin de strings, el cual es solamente un
operador para strings dentro de PHP, concatena un string detras de otro
/ste operador es un simple punto ()
/jemplo:
:?p"p
HtxtK@BHola amigos>BC
HtxtV@B-omo estuvieron las vacaciones?>BC
ec"o HtxtK B B HtxtVC
?;
'o que devolver ser la (rase BHola amigos> -omo estuvieron las
vacaciones?B $ediante las comillas y el espacio (B B) agregamos un espacio
entre las (rases

Earia#les %trings
0enemos tam#i2n la (uncin strlen(), la cual nos devuelve la cantidad de
caracteres (incluyendo un espacio) que tiene un string
/jemplo:
:?p"p
ec"o strlen(BHola amigosB)C
?;
+evuelve el n=mero KK
0am#i2n podemos pasarle el nom#re de cualquier varia#le que guarde un
string
/sto es =til cuando por ejemplo en un loop queremos recorrer letra por letra de
un string, para lo que necesitamos sa#er cuantos caracteres tiene este

Earia#les %trings
'a (uncin strpos() se utili3a para #uscar un caracter o un determinado texto
dentro de un string
%i se encuentra una coincidencia, se retorna la posicin del primer caracter que
coincide con la #usqueda %i no se encuentra una coincidencia, retorna un
W!'%/
/l siguiente ejemplo trata de encontrar la pala#ra .orld, en la (rase "ello .orld,
y devuelve la posicin donde empie3a esa pala#ra Hay que recordar, que el
primer caracter de un string esta en la posicin I y no K Por lo tanto da siempre
un n=mero menor a la cantidad de caracteres:
:?p"p
ec"o strpos(BHello .orld>B,B.orldB)C
?;
+evuelve L

Earia#les %trings
-omo es de imaginar, dentro de PHP existen muc"as (unciones para tra#ajar
so#re strings Fo se van a explicar todas, ya que se puede #uscar en la red
toda la re(erencia so#re uso de strings
Por ejemplo de la .e# "ttp:AAp"pnetAmanualAesAre(stringsp"p

)peradores
-omo tra#ajamos con n=meros y demases, tenemos que sa#er con que
operadores contamos en PHP
%i #ien casi siempre son los mismos, demos un repaso rpido so#re estos

)peradores aritmeticos
)perador Fom#re +escripcin /jemplo 9esultado
X Q ? !dicin %uma X e ? VQV Y
X G ? %u#straccin 9esta X e ? NGV 4
X D ? $ultiplicacin $ultiplica X e ? NDV KI
X A ? +ivisin +ivide X e ? KNAN 4
X Z ? $dulo Fos da el resto
de la division
entre X e ?
NZV
KIZ[
KIZV
K
V
I
G X Fegacin Hace a X
negativo
GV GV
a # -oncatenacin -oncatena a
con #
\Ho\\la\ \Hola\

)peradores de asignacin
!signacin /s lo mismo que +escripcion
x@y x@y 'e da al operando i3quierdo el valor
del operando de la derec"a
xQ@y x@xQy %uma al operando i3quierdo el
operando de la derec"a
xG@y x@xGy resta al operando i3quierdo el
operando de la derec"a
xD@y x@xDy multiplica al operando i3quierdo el
operando de la derec"a
xA@y x@xAy divideal operando i3quierdo el
operando de la derec"a
xZ@y x@xZy )#tiene el mdulo entre el operando
i3quierdo y el operando de la
derec"a
a@# a@a# -oncatena el operando i3quierdo
con el operando de la derec"a

)peradores de incremento y
decremento
)perador Fom#re +escripcion
QQX Pre incremento Primero incrementa X en uno, y
despues nos devuelve el valor de X
XQQ Post incremento Primero nos devuelve el valor de X
y despues los incrementa en uno
GGX Pre decremento Primero decrementa X en uno, y
despues nos devuelve el valor de X
XGG Post decremento Primero nos devuelve el valor de X
y despues los decrementa en uno

)peradores de comparacin
)perador Fom#re +escripcion /jemplo
x@@y igual
0rue si x es igual a y
N@@[ da (alse
x@@@y identico
+a true si x es igual y
del mismo tipo que y
N@@@\N\ da (alse
x>@y Fo igual
0rue si x no es igual a
y
N>@[ da true
x:;y Fo igual 0rue si x no es igual
a y
N:;[ da true
x>@@y Fo identico
0rue si no son iguales
o tienen di(erente tipo
N>@@\N\ da true
x;y $ayor a
0rue si x es mayor a y
N;[ da (alse
x:y $enor a
0rue si x es menor a y
N:[ da true
x;@y $ayor o igual
0rue si x es mayor o
igual a y
N;@[ da (alse
x:@y $enor o igual
0rue si x es menor o
igual a y
N:@[ da true

)peradores lgicos
)perador Fom#re +escripcion /jemplo
x and y and 0rue si x e y son
true
x@L y@4
(x : KI and y ; K)
devuelve true
x xor y or 0rue si x o y o
am#os son true
x@L y@4
(x@@L or y@@N)
devuelve true
x or y xor 0rue si x o y son
true, pero no si
am#os lo son
x@L y@4
(x@@L xor y@@4)
devuelve (alse
x ]] y and 0rue si x e y son
true
x@L y@4
(x : KI ]] y ; K)
devuelve true
x ^^ y or 0rue si x o y o
am#os son true
X@L y@4
(x@@N ^^ y@@N)
devuelve (alse
> x not 0rue si x es (alse x@L y@4
>(x@@y)
devuelve true

-ondicionales
-omo vimos en otros lenguajes, los condicionales se usan para reali3ar
di(erentes acciones #asandonos en di(erentes condiciones
/n PHP existen los siguientes condicionales:
G -ondicional i( : utili3amos esto si queremos ejecutar alguna accin solo si una
condicin espec8(ica es verdadera
G -ondicional i(else: ejecutamos una accin si una condicin es verdadera (i()
u otra accin si es (alsa (else)
G -ondicional i(elsei(else: /sto lo usamos para ejecutar una o varias
acciones seg=n los di(erentes condicionales
G -ondicional s.itc": este se usa si deseo reali3ar una o muc"as acciones

-ondicionales i(
Eeamos un ejemplo de cada uno de los usos de i(:
I(:
:"tml;
:#ody;
:?p"p
AAla (uncin date usada de esta (orma nos da el d8a en que estamos
AAmostrando solamente las 4 letras del nom#re
Hd@date(B+B)C
I( (Hd@@BWriB) ec"o B&ue tengas un lindo (inde>>>>BC
?;
:A#ody;
:A"tml;

-ondicionales i(
I( else:
:"tml;
:#ody;
:?p"p
Hd@date(B+B)C
i( (Hd@@BWriB)
O
ec"o B&ue tengas un lindo (inde>>>BC
P
else
O
ec"o B&ue tengas un lindo d8a>BC
P
?;
:A#ody;
:A"tml;

-ondicionales i(
I( elsei(else:
:"tml;
:#ody;
:?p"p
Hd@date(B+B)C
i( (Hd@@BWriB)
O
ec"o B&ue tengas un lindo (inde>BC
P
elsei( (Hd@@B%unB)
O
ec"o B&ue tengas un lindo sa#ado>>BC
P
else
O
ec"o B&ue tengas un #uen d8a>BC
P
?;
:A#ody;
:A"tml;

-ondicional s.itc"
%.itc":
:"tml;
:#ody;
:?p"p
Hx@KC
s.itc" (Hx)
O
case K:
ec"o BFum#er KBC
#rea_C
case V:
ec"o BFum#er VBC
#rea_C
case 4:
ec"o BFum#er 4BC
#rea_C
de(ault:
ec"o BFo num#er #et.een K and 4BC
P
?;
:A#ody;
:A"tml;

!rrays
-omo sa#emos, un array guarda multiples valores, en una sola varia#le
Por ejemplo, si tengo una lista de items:
HautoK@BWiatB
HautoV@BWerrariB
Hauto4@B+odgeB
%i yo tengo que procesar mediante un loop alguno en particular, se complica un
poco, y si tengo 4II items, mas aun
/ntonces un array puede guardar todos los valores de varia#les, pero #ajo un
solo nom#re, lo que lo "ace (acilmente maneja#le
-omo vimos en otros lenguajes, cada elemento de un array tiene un indice, lo
que lo "ace accesi#le (acilmente

!rrays
/n PHP tenemos tres tipos de arrays:
G !rrays numericos: un array con indices num2ricos
G !rrays asociativos: un array donde cada clave de I+ es asociado con un valor
G !rray multidimensionales: un array que contiene uno o ms arrays dentro

!rrays num2ricos
-omo dijimos estos arrays guardan cada elemento con un n=mero de indice
asociado
Hay dos m2todos en PHP para crear arrays num2ricos:
KG %e asigna el indice automaticamente, al nom#rar item por item:
Hautos@array(B(iatB,B(errariB,BdodgeB,B(ordB)C
VG %e asigna el indice manualmente:
HautosRIS@B(iatBC
HautosRKS@B(errariBC
HautosRVS@BdodgeBC
HautosR4S@B(ordBC

!rrays num2ricos
Eeamos un ejemplo donde se o#serva como acceder a una varia#le del array
mediante el nom#re del array y el indice:
:?p"p
HautosRIS@B(iatBC
HautosRKS@B(errariBC
HautosRVS@BdodgeBC
HautosR4S@B(ordBC
ec"o HautosRIS B y B HautosRKS B %on autos italianosBC
?;
/ste script nos devolvera la (rase:
B(iat y (errari son autos italianosB

!rrays asociativos
/n un array asociativo un nom#re puede ser asociado con un valor
-uando guardamos datos asociados a un nom#re espec8(ico, un array num2rico
no siempre es la mejor opcin
-on los arrays asociativos podemos usar los valores correspondientes a los
nom#res o asignarles un valor tam#i2n
Eeamos un ejemplo de como se crean y se usan estos arrays

!rrays asociativos
/n este ejemplo queremos asociar una edad a un personaje de Wamily *uy:
6na (orma de "acerlo ser8a:
Hedades @ array(BPeterB@;4V, B&uagmireB@;4I, B1oeB@;4Y)C
)tra (orma de "acerlo ser8a:
HedadesRTPeterTS @ B4VBC
HedadesRT&uagmireTS @ B4IBC
HedadesRT1oeTS @ B4YBC
Eeamos a"ora como usar estos datos en un script

!rrays asociativos
:?p"p
HedadesRTPeterTS @ B4VBC
HedadesRT&uagmireTS @ B4IBC
HedadesRT1oeTS @ B4YBC
ec"o BPeter tiene B HedadesRTPeterTS B a5os de edadBC
?;
/ste script nos devolver la siguiente (rase:
BPeter tiene 4V a5os de edadB
? solo tuvimos que llamar al array con su nom#re para utili3arlo

!rrays multidimensionales
/n un array multidimensional, cada elemento del array principal puede tam#i2n
ser un array, y cada elemento de este su# array, puede tam#i2n ser un array,
por lo que el anidamiento de arrays puede ser muy pro(undo y complejo
Eeamos un ejemplo donde creamos un array multidimensional, asignadole
claves automaticamente, y viendo como acceder a ellos

!rrays multidimensionales
Primero creamos un array (amilias, y dentro de cada (amilia un array de
integrantes de esas (amilias /sta es la (orma de "acerlo
H(amilias @ array
(
B*ri((inB@;array
(
BPeterB,
B'oisB,
B$eganB
),
B&uagmireB@;array
(
B*lennB
),
B,ro.nB@;array
(
B-levelandB,
B'orettaB,
B1uniorB
)
)C

!rrays multidimensionales
Podemos visuali3ar mas claramente el array mostrandolo de esta manera:
!rray
(
R*ri((inS @; !rray
(
RIS @; Peter
RKS @; 'ois
RVS @; $egan
)
R&uagmireS @; !rray
(
RIS @; *lenn
)
R,ro.nS @; !rray
(
RIS @; -leveland
RKS @; 'oretta
RVS @; 1unior
)
)
/sto solo es un ejemplo, no es la (orma (uncional del array ni la sintaxis correcta

!rrays multidimensionales
? lo usariamos de la siguiente manera:
ec"o B/s B H(amiliasRT*ri((inTSRVS B parte de la (amilia *ri((in?BC
Wuncin que nos devolver8a la (rase:
B/s $egan parte de la (amilia *ri((in?B
/xisten muc"as (unciones para arrays, para esto podemos revisar la re(erencia
en: "ttp:AAp"pnetAmanualAesAlanguagetypesarrayp"p

'oops
-omo ya "emos visto en este curso, los loops ejecutan un #loque de cdigo un
n=mero espec8(ico de veces, o mientras se de una condicin espec8(ica
-uando nosotros escri#imos cdigo, muc"as veces necesitamos repetir varias
veces el mismo cdigo con alg=n cam#io
/n PHP, tenemos controladores de loops:
G7"ile: %e produce loop mientras se mantenga una condicin espec8(ica
G+o7"ile: 9eali3a el loop una ve3, y luego mientras se mantenga una
condicin espec8(ica, peor por lo menos una ve3
GWor: 9eali3a el loop un n=mero espec8(ico de veces
GWoreac": 9eali3a el loop para cada elemento de un array

'oop ."ile
-omo ya sa#emos como (unciona, un ejemplo:
:"tml;
:#ody;
:?p"p
Hi@KC
."ile(Hi:@N)
O
ec"o B/l n=mero es B Hi B:#r A;BC
HiQQC
P
?;
:A#ody;
:A"tml;
`&ue nos devuelve este programa simple?

'oop ."ile
/l n=mero es K
/l n=mero es V
/l n=mero es 4
/l n=mero es Y
/l n=mero es N

'oop do."ile
-omo ya sa#emos como (unciona, un ejemplo:
:"tml;
:#ody;
:?p"p
Hi@KC
do
O
HiQQC
ec"o B/l n=mero es B Hi B:#r A;BC
P
."ile (Hi:@N)C
?;
:A#ody;
:A"tml;
`&ue nos devuelve este programa simple?

'oop do."ile
/l n=mero es V
/l n=mero es 4
/l n=mero es Y
/l n=mero es N
/l n=mero es L

'oop (or
-omo ya sa#emos como (unciona, un ejemplo:
:"tml;
:#ody;
:?p"p
(or (Hi@KC Hi:@NC HiQQ)
O
ec"o Bel n=mero es B Hi B:#r A;BC
P
?;
:A#ody;
:A"tml;
`&ue nos devuelve este programa simple?

'oop (or
/l n=mero es K
/l n=mero es V
/l n=mero es 4
/l n=mero es Y
/l n=mero es N

'oop (oreac"
6n ejemplo:
:"tml;
:#ody;
:?p"p
Hx@array(B6noB,B+osB,B0resB)C
(oreac" (Hx as Hvalue)
O
ec"o Hvalue B:#r A;BC
P
?;
:A#ody;
:A"tml;
`&ue nos devuelve este programa simple?

'oop (oreac"
6no
+os
0res

Wunciones
/l verdadero poder de PHP, radica en la capacidad de procesamiento de sus
(unciones
!ctualmente en PHP existen ms de aII (unciones prede(inidas que podemos
utili3ar en nuestros programas
Para repasar todas las (unciones que tiene PHP podemos ir a la pgina:
"ttp:AAp"pnetAmanualAesAindexp"p
)
"ttp:AA....4sc"oolscomAp"pAde(aultasp

Wunciones
0am#i2n podemos crear y de(inir nuestra propias (unciones
%i nosotros queremos guardar alguna secuencia de comandos que creamos en
un script, podemos escri#ir una (uncin
/sta (uncin se ejecutar como una llamada a (uncin
6na (uncin puede ser llamada desde cualquier lugar de una pgina, si
logicamente esta previamente creada

Wunciones
Para crear una (uncin solamente de#emos ponerle un nom#re que re(leje que
es lo que "ace y tener en cuenta que el nom#re de una (uncin de#e empe3ar
con una letra o un guion #ajo
6n ejemplo de una (uncin simple:
:"tml;
:#ody;
:?p"p
(unction .riteFame()
O
ec"o B/ste#an -alcagnoBC
P
ec"o B$i nom#re es BC
.riteFame()C
?;
:A#ody;
:A"tml;
`&ue nos devuelve este programa?

Wunciones
$i nom#re es /ste#an -alcagno

Wunciones
/n PHP tam#i2n podemos pasarle parametros a las (unciones, para agregarle
potencia, igual que en los lenguajes que vimos Eeamos unos ejemplos:
:"tml;
:#ody;
:?p"p
(unction .riteFame(H(name)
O
AAlo que "ago ac es solo pedir el nom#re y despues agregar
AAel apellido
ec"o H(name B -alcagno:#r A;BC
P
ec"o B$i nom#re es BC
.riteFame(B/ste#anB)C
ec"o B/l nom#re de mi perra es BC
.riteFame(B-"iquitaB)C
ec"o B/l nom#re de mi perro es BC
.riteFame(BWranciscoB)C
?;
:A#ody;
:A"tml;
`&ue nos devuelve esto?

Wunciones
$i nom#re es /ste#an -alcagno
/l nom#re de mi perra es -"iquita -alcagno
/l nom#re de mi perro es Wrancisco -alcagno

Wunciones
Eeamos una (uncin que acepta ms de un argumento:
:"tml;
:#ody;
:?p"p
(unction .riteFame(H(name,Hpuntuation)
O
AA'e agrego el apellido y como termina
ec"o H(name B -alcagnoB Hpuntuation B:#r A;BC
P
ec"o B$i nom#re es BC
.riteFame(B/ste#anB,BB)C
ec"o B/l nom#re de mi perra es BC
.riteFame(B-"iquitaB,B>B)C
ec"o B/l nom#re de mi perro es BC
.riteFame(BWranciscoB,B?B)C
?;
:A#ody;
:A"tml;

Wunciones
$i nom#re es /ste#an -alcagno
/l nom#re de mi perra es -"iquita -alcagno>
/l nom#re de mi perro es Wrancisco -alcagno?

Wunciones
-omo sa#emos, una (uncin puede devolver alg=n tipo de valor
Eeamos un ejemplo de como "ariamos esto:
:"tml;
:#ody;
:?p"p
(unction add(Hx,Hy)
O
Htotal@HxQHyC
AA%olo de#emos utili3ar la pala#ra return
return HtotalC
P
ec"o BK Q KL @ B add(K,KL)C
?;
:A#ody;
:A"tml;
&ue imprimir en pantalla: K Q KL @ Ka

$anejo de (ormularios
6na de las cosas ms interesantes al tra#ajar con PHP, es que si tenemos un
(ormulario H0$', la in(ormacin que introducimos en cualquier elemento del
(ormulario puede ser utili3ada automaticamente dentro de un script de PHP
Por ejemplo si tenemos el siguiente (ormulario desarrollado en H0$':
:"tml;
:#ody;
:(orm [email protected]"pB met"od@BpostB;
Fom#re: :input type@BtextB name@B(nameB A;
/dad: :input type@BtextB name@BageB A;
:input type@Bsu#mitB A;
:A(orm;
:A#ody;
:A"tml;

$anejo de (ormularios
$ediante el parametro action, le indicamos al (ormulario que arc"ivo p"p
procesar la in(ormacin del (ormulario 'uego veremos que signi(ica el m2todo
post
/l arc"ivo PHP que procesar (ormulario puede tener la siguiente (orma:
:"tml;
:#ody;
,ienvenido :?p"p ec"o H<P)%0RB(nameBSC ?;>:#r A;
6sted tiene :?p"p ec"o H<P)%0RBageBSC ?; a5os
:A#ody;
:A"tml;
-omo se o#serva con solo pasarle el nom#re del elemento del (ormulario a
H<P)%0, se puede o#tener la in(ormacin del mismo

$anejo de (ormularios
-uando yo ingrese los datos y aprete el #otn su#mit, o#tendremos lo siguiente:
,ienvenido /ste#an>
6sted tiene 4K a5os
-omo vemos en el ejemplo anterior, podemos ingresar scripts PHP dentro de
una linea de H0$'
Eeamos de que se trata esto de post

$anejo de (ormularios: post y get
H<*/0 y H<P)%0 son dos varia#les que se utili3an para recolectar los datos de
los (ormularios H0$'
H<*/0 es utili3ada para recolectar los datos mediante el m2todo met"od@BgetB
'a in(ormacin enviada mediante este m2todo es visi#le para todo el mundo (se
puede ver en la #arra de direcciones del navegador) y tiene #astantes limites
con la cantidad de in(ormacin que se envia
/ste m2todo F) se utili3a cuando se envian pass.ords o in(ormacin personal
importante
%in em#argo, ya que la in(ormacin se ve en la #arra de direccines, las
paginas pueden ser marcadas, y por lo tanto puede ser =til (#oo_mar_) usar get
)tra mala para get, es que no (unciona para valores de varia#les muy grandes,
ms de VIII caracteres
,ienvenido :?p"p ec"o H<*/0RB(nameBSC ?;:#r A;
6sted tiene :?p"p ec"o H<*/0RBageBSC ?; a5os>

$anejo de (ormularios: post y get
-omo vimos, la varia#le H<P)%0, se utili3a con el m2todo met"od@BpostB
'a in(ormacin enviada por este m2todo es invisi#le, y no tiene ning=na l8mite
en la cantidad de in(ormacin enviada
%e utili3a para in(ormacin sensi#le, pass.ord, nros de tarjeta, etc, etc, y
cuando no necesitamos marcar la pgina (#oo_mar_)
,ienvenido :?p"p ec"o H<P)%0RB(nameBSC ?;:#r A;
6sted tiene :?p"p ec"o H<P)%0RBageBSC ?; a5os>
/xiste una varia#le prede(inida ms que es H<9/&6/%0, y que sirve para
recolectar in(ormacin #ajo am#os m2todos
Eeremos esta =ltima en un ejemplo ms adelante

PHP G +ate
'a (uncin de PHP date(), se utili3a para (ormatear (ec"as y "orarios de na
(orma ms (acil
Eeamos como se usa esta (uncin con un ejemplo simple:
:?p"p
ec"o date(B?AmAdB) B:#r A;BC
ec"o date(B?mdB) B:#r A;BC
ec"o date(B?GmGdB)C
?;
'a B?B, es el a5o, la BmB es el mes y la BdB es el d8a Fosotros podemos elegir
como mostrar la (ec"a /sto dar como resultado lo siguiente:
VIKVAIaAVN
VIKVIaVN
VIKVGIaGVN
+ate toma la in(ormacin del d8a de nuestro servidor, por eso es importante que
este actuali3ado

PHP G +ate
! date() le puedo pasar muc"os argumentos para (ormatear una "ora
determinada, a continuacin una lista de algunos de ellos:
a G BamB o BpmB
! G B!$B o BP$B
d G d8a del mes, dos d8gitos con cero a la i3quierdaC es decir, de BIKB a B4KB
+ G d8a de la semana, en texto, con tres letrasC por ejemplo, BWriB
W G mes, en texto, completoC por ejemplo, B1anuaryB
g G "ora sin ceros, de BKB a BKVB
* G "ora sin ceros, de BKB a BV4B
" G "ora, de BIKB a BKVB
H G "ora, de BIIB a BV4B
i G minutosC de BIIB a BNJB
j G d8a del mes sin cero inicialC de BKB a B4KB
l (T'T min=scula) G d8a de la semana, en texto, completoC por ejemplo, BWridayB
' G BKB or BIB, seg=n si el a5o es #isiesto o no
m G mesC de BIKB a BKVB
$ G mes, en texto, 4 letrasC por ejemplo, B1anB
n G mes sin cero inicialC de BKB a BKVB
s G segundosC de BIIB a BNJB
t G n=mero de d8as del mes dadoC de BV[B a B4KB
? G a5o, cuatro ci(rasC por ejemplo, BKJJJB
y G a5o, dos ci(rasC por ejemplo, BJJB
3 G d8a del a5oC de BIB a B4LNB

PHP G +ate
Por supuesto le podemos avisar a date() en que 3ona "oraria nos encontramos,
para que no ponga cualquier cosa
date<de(ault<time3one<set(B!mericaA!rgentinaA,uenos<!iresB)C
Podemos o#tener una lista de todas las 3onas en:
"ttp:AA...p"pnetAmanualAenAtime3onesp"p
/xisten otras muc"as (unciones para con(igurar date(), podemos ver una
re(erenciacompleta en "ttp:AAp"pnetAmanualAesA(unctiondatep"p

PHP G includes
/n PHP se puede insertar contenido de un arc"ivo PHP en otro arc"ivo
'a sintaxis es muy sencilla:
include Tarc"ivop"pT
)
require Tarc"ivop"pT

PHP G includes
Pro#emos con un ejemplo %i tenemos un arc"ivo llamado menup"p, que
queremos poner en todas nuestras pginas, con el siguiente cdigo:
ec"o T:a "re(@BAde(aultp"pB;Home:Aa;
:a "re(@BAtutorialsp"pB;0utorials:Aa;
:a "re(@BAre(erencesp"pB;9e(erences:Aa;
:a "re(@BAexamplesp"pB;/xamples:Aa;
:a "re(@BAa#outp"pB;!#out 6s:Aa;
:a "re(@BAcontactp"pB;-ontact 6s:Aa;TC
Podemos agregarlo en cada una de las pginas que creamos, como en el
siguiente ejemplo

PHP G includes
:"tml;
:#ody;
:div class@Ble(tmenuB;
:?p"p include Tmenup"pTC ?;
:Adiv;
:"K;,ienvenido a mi .e#>>>:A"K;
:p;!lg=n texto:Ap;
:A#ody;
:A"tml;

PHP M $anejo de arc"ivos de texto
)tras de las cosas interesantes que tiene PHP es el poder leer y escri#ir
arc"ivos de texto
!ntes de leer o escri#ir un arc"ivo de texto se de#e a#rir, para esto se utili3a la
(uncin (open()
/sta (uncin reci#e dos argumentos, el nom#re del arc"ivo, y el modo en que lo
queremos a#rir
Eeamos una ta#la para ver como (unciona el segundo argumento

PHP M $anejo de arc"ivos de texto
$odo +escripcin
r
%olo lectura -omien3a desde el principio del
arc"ivo
rQ
'ecturaAescritura -omien3a desde el principio del
arc"ivo
.
%olo /scritura !#re y limpia el contenido del
arc"ivo o crea un nuevo arc"ivo si este no existe
.Q
'ecturaAescritura !#re y limpia el contenido del
arc"ivo o crea un nuevo arc"ivo si este no existe
a
!5adir !#re un arc"ivo y se dirije al (inal del
mismo para empe3ar a escri#ir -rea un arc"ivo si
este no existe
aQ
'ecturaAa5adir Preserva el contenido del arc"ivo
mediante la escritura del (inal del arc"ivo
x
%olo escritura -rea un nuevo arc"ivo y devuelve
un error si este ya existe
xQ
'ecturaAescritura -rea un nuevo arc"ivo y
devuelve un error si este ya existe

PHP M $anejo de arc"ivos de texto
!#riendo un arc"ivo:
:"tml;
:#ody;
:?p"p
H(ile@(open(B.elcometxtB,BrB)C
?;
:A#ody;
:A"tml;
+e esta (orma estamos a#riendo el arc"ivo, en modo lectura

PHP M $anejo de arc"ivos de texto
!#riendo un arc"ivo y generando un mensaje:
:"tml;
:#ody;
:?p"p
H(ile@(open(B.elcometxtB,BrB) or exit(B/l arc"ivo no esta disponi#leB)C
?;
:A#ody;
:A"tml;
%i el arc"ivo no existe, muestra un mensaje de error

PHP M $anejo de arc"ivos de texto
Para cerrar un arc"ivo que a#rimos antes, se utili3a (close():
:?p"p
AAse "a#re el arc"ivo
H(ile @ (open(BtesttxtB,BrB)C
AA%e ejecuta alg=n cdigo
AAse cierra el arc"ivo
(close(H(ile)C
?;
%i el arc"ivo no existe, muestra un mensaje de error

PHP M $anejo de arc"ivos de texto
0am#i2n podemos c"equear que llegamos al (inal del arc"ivo, cosa mu =til
cuando usemos los loops para leer el arc"ivo /sto se "ace con la (uncin
(eo(():
i( ((eo((H(ile)) ec"o B/nd o( (ileBC
'os arc"ivos de#en ser a#iertos en modo lectura, para reali3ar este
procedimiento

PHP M $anejo de arc"ivos de texto
'eamos un arc"ivo linea a linea, para esto utili3aremos la (uncion (gets():
:?p"p
AAse "a#re el arc"ivo en modo lectura
H(ile @ (open(B.elcometxtB, BrB) or exit(B6na#le to open (ile>B)C
AA'eo linea por linea mientras o sea el (in del arc"ivo
."ile(>(eo((H(ile))
O
AAleo e imprimo
ec"o (gets(H(ile) B:#r A;BC
P
AAcierro el arc"ivo
(close(H(ile)C
?;

PHP M $anejo de arc"ivos de texto
'eamos un arc"ivo caracter por caracter mediante la (uncin (getc():
:?p"p
AAse "a#re el arc"ivo como lectura
H(ile@(open(B.elcometxtB,BrB) or exit(B6na#le to open (ile>B)C
AAleo e imprimo caracter por caracter "asta terminar
AAel arc"ivo
."ile (>(eo((H(ile))
O
ec"o (getc(H(ile)C
P
AAcierro el arc"ivo
(close(H(ile)C
?;

PHP M %u#ir arc"ivos al servidor
)tra de las (unciones interesantes de PHP, es la posi#ilidad de su#ir un arc"ivo
al servidor, de manera tal que despues lo podemos utili3ar
6n ejemplo ser8a una imagen de per(il de un usuario
Eeamos como "acer esto mediante un simple ejemplo

PHP M %u#ir arc"ivos al servidor
%upongamos que tenemos un (ormulario para su#ir arc"ivos al servidor:
:"tml;
:#ody;
:(orm action@Bupload<(ilep"pB met"od@BpostB enctype@BmultipartA(ormGdataB;
:la#el (or@B(ileB;Wilename::Ala#el;
:input type@B(ileB name@B(ileB id@B(ileB A;
:#r A;
:input type@Bsu#mitB name@Bsu#mitB value@B%u#mitB A;
A(orm;
:A#ody;
:A"tml;
/nviaremos los datos mediante el m2todo post y adems con(iguraremos el tipo
de encriptacin de los datos como BmultipartA(ormGdataB, el cual se utili3a cuando se
requiere un (ormulario de datos #inarios, como lo son los datos de un arc"ivo
/l atri#uto type@B(ileB del (ormulario indica que la entrada va a ser procesada
como un arc"ivo

PHP M %u#ir arc"ivos al servidor
/l "ec"o de que se su#an arc"ivos a un servidor es muy peligroso, se de#e
solo dejar que lo "agan usuarios conocidos del sistema $s adelante veremos
como generar un sistema de login para nuestros usuarios
/l programa que reali3ar la su#ida ser el siguiente, que llamaremos
upload<(ilep"p:
:?p"p
i( (H<WI'/%RB(ileBSRBerrorBS ; I)
O
ec"o B/rror: B H<WI'/%RB(ileBSRBerrorBS B:#r A;BC
P
else
O
ec"o B6pload: B H<WI'/%RB(ileBSRBnameBS B:#r A;BC
ec"o B0ype: B H<WI'/%RB(ileBSRBtypeBS B:#r A;BC
ec"o B%i3e: B (H<WI'/%RB(ileBSRBsi3eBS A KIVY) B b#:#r A;BC
ec"o B%tored in: B H<WI'/%RB(ileBSRBtmp<nameBSC
P
?;

PHP M %u#ir arc"ivos al servidor
,ien, este script tiene varias partes, analicemos una por una:
Para rescatar la in(ormacin del (ormulario utili3aremos la varia#le glo#al de
PHP H<WI'/%, a la cual le pasamos el nom#re del arc"ivo (input (ile)
'a varia#le H<WI'/% reci#e el nom#re del arc"ivo como primer parametro, y
luego tiene un segundo componente de array del cual se puede o#tener
in(ormacin Eeamos algunos de esos componentes:
H<WI'/%RB(ileBSRBnameBS M nos devuelve el nom#re del arc"ivo
H<WI'/%RB(ileBSRBtypeBS M tipo de arc"ivo
H<WI'/%RB(ileBSRBsi3eBS M el tama5o en #ytes
H<WI'/%RB(ileBSRBtmp<nameBS M /l nom#re de la copia temporal del arc"ivo en el
servidor
H<WI'/%RB(ileBSRBerrorBS M un parametro por si se produce un error

PHP M %u#ir arc"ivos al servidor
+e esta manera es ms simple anali3ar el programa que su#e arc"ivos:
AAprimero se (ija si tiene alg=n tipo de error y lo imprime
i( (H<WI'/%RB(ileBSRBerrorBS ; I)
O
ec"o B/rror: B H<WI'/%RB(ileBSRBerrorBS B:#r A;BC
P
AA%i no tiene error lo procesa, y o#tiene in(ormacin del mismo
else
O
ec"o B6pload: B H<WI'/%RB(ileBSRBnameBS B:#r A;BC
ec"o B0ype: B H<WI'/%RB(ileBSRBtypeBS B:#r A;BC
AAsi divido por KIVY tengo la in(o en b#
ec"o B%i3e: B (H<WI'/%RB(ileBSRBsi3eBS A KIVY) B b#:#r A;BC
ec"o B%tored in: B H<WI'/%RB(ileBSRBtmp<nameBSC
P
0odav8a seguimos teniendo una copia temporal del arc"ivo, antes de ver como
guardar el arc"ivo directamente, veamos algunas restricciones que podemos
indicar

PHP M %u#ir arc"ivos al servidor
Eeamos una restriccin general de tipo y tama5o de arc"ivo:
:?p"p
Hallo.ed/xts @ array(BjpgB, BjpegB, Bgi(B, BpngB)C
Harc"ivo @ explode(BB, H<WI'/%RB(ileBSRBnameBS)C
Hextension @ end(Harc"ivo)C
i( (((H<WI'/%RB(ileBSRBtypeBS @ @ BimageAgi(B)
^^ (H<WI'/%RB(ileBSRBtypeBS @ @ BimageAjpegB)
^^ (H<WI'/%RB(ileBSRBtypeBS @ @ BimageApjpegB))
]] (H<WI'/%RB(ileBSRBsi3eBS : VIIII))
]] in<array(Hextension, Hallo.ed/xts))
O
i( (H<WI'/%RB(ileBSRBerrorBS ; I)
O
ec"o B/rror: B H<WI'/%RB(ileBSRBerrorBS B:#r A;BC
P
else
O
ec"o B6pload: B H<WI'/%RB(ileBSRBnameBS B:#r A;BC
ec"o B0ype: B H<WI'/%RB(ileBSRBtypeBS B:#r A;BC
ec"o B%i3e: B (H<WI'/%RB(ileBSRBsi3eBS A KIVY) B b#:#r A;BC
ec"o B%tored in: B H<WI'/%RB(ileBSRBtmp<nameBSC
P
P
else
O
ec"o BInvalid (ileBC
P
?;

PHP M %u#ir arc"ivos al servidor
$ediante este script podemos restringir a los arc"ivos por tipos (iamgenes, gi(,
jpeg y png) y si el tama5o no supera los VIb#
Por =ltimo veamos como guardar de(initivamente el arc"ivo en el servidor, ya
que de otra manera el arc"ivo temporal desaparecer8a cuando el script termina:

PHP M %u#ir arc"ivos al servidor

else
O
ec"o B6pload: B H<WI'/%RB(ileBSRBnameBS B:#r A;BC
ec"o B0ype: B H<WI'/%RB(ileBSRBtypeBS B:#r A;BC
ec"o B%i3e: B (H<WI'/%RB(ileBSRBsi3eBS A KIVY) B b#:#r A;BC
ec"o B0emp (ile: B H<WI'/%RB(ileBSRBtmp<nameBS B:#r A;BC
AAprimero me (ijo si el arc"ivo existe
i( ((ile<exists(BuploadAB H<WI'/%RB(ileBSRBnameBS))
O
ec"o H<WI'/%RB(ileBSRBnameBS B already exists BC
P

AAsino existe lo su#o al servidor
else
O
AAa la carpeta upload, con el nom#re original
move<uploaded<(ile(H<WI'/%RB(ileBSRBtmp<nameBS, BuploadAB H<WI'/%RB(ileBSRBnameBS)C
ec"o B%tored in: B BuploadAB H<WI'/%RB(ileBSRBnameBSC
P
P
P
else
O
ec"o BInvalid (ileBC
P
?;

PHP M coo_ies
6na -oo_ie se utili3a para identi(icar un usuario %e trata de un peque5o
arc"ivo que el servidor guarda en la computadora del usuario a trave3 del
navegador que esta utili3ando
/ste arc"ivo contiene in(ormacin determinada de este usuario, si guardamos
una coo_ie, cda ve3 que una computadora accede a la pgina due5a de esa
coo_ie, con el mismo navegador que utili3 la ultima ve3, esta se enviar al
sevidor quien podr levantar la in(ormacin desde la coo_ie para individuali3ar
la .e#
PHP permite crear y levantar in(ormacin de una coo_ie

PHP M coo_ies
Para crear una coo_iese utili3a la (uncin setcoo_ie(), la cual de#e estar
u#icada antes de la etiqueta de comien3o de "tml
/sta (uncin tiene la siguiente sintaxis:
setcoo_ie(nom#re, valor, (ec"a<de<expiracion, lugar, dominio)C

PHP M coo_ies
Para crear una coo_ie se utili3a la (uncin setcoo_ie(), la cual de#e estar
u#icada antes de la etiqueta de comien3o de "tml
/sta (uncin tiene la siguiente sintaxis:
setcoo_ie(nom#re, valor, (ec"a<de<expiracion, ruta, dominio)C
Eeamos algunos ejemplos

PHP M coo_ies
:?p"p
setcoo_ie(BuserB, B!lex PorterB, time()Q4LII)C
?;
:"tml;

/ste script guarda una coo_ie con la siguiente in(ormacin:


Fom#re de la coo_ie: user
Ealor de la coo_ie: !lex Porter
0iempo de expiracin de la coo_ie: K "ora (el "orario actual Q 4LII segundos)
%i no lo indicamos, la ruta es asignada directamente por el navegador, lo que es
recomenda#le 'o mismo sucede con el nom#re del dominio

PHP M coo_ies
/n el siguiente ejemplo, podemos declarar el tiempo de expiracin de otra
manera, mediante una varia#le:
:?p"p
Hexpire@time()QLIDLIDVYD4IC
setcoo_ie(BuserB, B!lex PorterB, Hexpire)C
?;
:"tml;

/n este caso el tiempo esta seteado en un mes ((ec"a actual Q (LI


segundosDLI minutosDVY "orasD4I d8as))

PHP M coo_ies
Para recuperar el valor de la coo_ie se utili3a la varia#le glo#al de PHP
H<-))bI/ la cual reci#e el nom#re de la coo_ie y devuelve su valor
Eeamos algunos ejemplos de como recuperar una coo_ie e imprimir su valor

PHP M coo_ies
:?p"p
AA imprimir el valor de una coo_ie
ec"o H<-))bI/RBuserBSC
AA 6na (orma de ver todas las coo_ies que guardamos en una compu
print<r(H<-))bI/)C
?;
/n el siguiente ejemplo veremos como usar la (uncin isset() para ver si una
coo_ie "a sido guardada en una computadora que accedi a la pgina

PHP M coo_ies
:"tml;
:#ody;
:?p"p
i( (isset(H<-))bI/RBuserBS))
ec"o B,ienvenido B H<-))bI/RBuserBS B>:#r A;BC
else
ec"o B,ienvenido deconocido>:#r A;BC
?;
:A#ody;
:A"tml;
Fos (ijamos si existe una coo_ie con ese nom#re, y seteamos un mensaje de
#ienvenida seg=n el caso

PHP M coo_ies
%i deseamos #orrar un co_iee por alguna ra3n, lo podemos "acer seteando el
tiempo de expiracin de la misma de la siguiente manera:
:?p"p
AA set t"e expiration date to one "our ago
setcoo_ie(BuserB, BB, time()G4LII)C
?;
'as coo_ies son muy utili3adas en las sesiones de usuarios de paginas de
correo o en redes sociales, donde a veces es necesario guardar in(ormacin en
la computadora de un usuario

PHP M %esiones de usuario
-uando tra#ajamos con una aplicacin, nosotros podemos a#rirla, reali3ar
algunos cam#ios y luego cerrarla /sto se parece muc"o a aun sesin de
usuario, ya que la computadora sa#e exactamente quiene somos, y guarda
in(ormacin para cuando usemos la aplicacin ms tarde
-uando tra#ajamos con una .e#, esto no (unciona as8, ya que el servidor no
sa#e quienes somos nosotros, ms aun si nuestra IP es dinmica
6na sesin de usuario en PHPresuelve este pro#lema ya que permite al
servidor almacenar in(ormacin del usuario para su uso posterior (nom#re de
usuario, noticias (avoritas, art8culos comprados, con(iguraciones de sesin)
%in em#argo, esta in(ormacin sin ayuda de una #ase de datos, es temporal y
se elimina despues de salir de la pgina $s adelante veremos como crear y
utili3ar #ases de datos para guardar distintos tipos de in(ormacin
'as sesiones (uncionan mediante la creacin de un identi(icador unico (6I+)
para cada visitante de la pgina y guarda varia#les en (uncin de esta 6I+
/sta 6I+ puede ser guardado en una coo_ie, si no se tiene una #ase de datos
activa

PHP M %esiones de usuario
!ntes de poder guardar in(ormacin de usuarios en una sesin de PHP, primero
se de#e iniciar una sesin
Para esto se utili3a la (uncin session<start(), que de#e aparecer antes de la
etiqueta "tml
:?p"p session<start()C ?;
:"tml;
:#ody;
:A#ody;
:A"tml;
/ste cdigo registra la sesin de usuario en el servidor permitiendo empe3ar a
guardar in(ormacin del servidor, y asignar una 6I+ al usuario

PHP M %esiones de usuario
Para guardar la in(ormacin de la sesin se utili3a la varia#le H<%/%%I)F,
como en el siguiente ejemplo:
:?p"p
session<start()C
AAalmacenar datos de sesin
H<%/%%I)FRTvie.sTS@KC
?;
:"tml;
:#ody;
:?p"p
AArecuperamos el dato de sesin
ec"o BPaginas visuali3adas@B H<%/%%I)FRTvie.sTSC
?;
:A#ody;
:A"tml;
'a salida de este scritpt ser:
Pginas visuali3adas @ K

PHP M %esiones de usuario
Fuevamente mediante la (uncin isset(), podemos ver si alguna varia#le de
sesin (ue creada y adems podemos modi(icar su contenido, como en el script
contador de pginas que se muestra a continuacin:
:?p"p
session<start()C
i((isset(H<%/%%I)FRTvie.sTS))
H<%/%%I)FRTvie.sTS@H<%/%%I)FRTvie.sTSQKC
else
H<%/%%I)FRTvie.sTS@KC
ec"o BEie.s@B H<%/%%I)FRTvie.sTSC
?;
Primero me (ijo si existe la varia#le, si existe lo aumento en K, sino la creo

PHP M %esiones de usuario
%i deseamos #orrar alguna varia#le de sesin, podemos utili3ar la (uncin
unset() %i deseamos destruir una sesin, utili3amos session<destroy():
,orramos una varia#le de sesin:
:?p"p
session<start()C
i((isset(H<%/%%I)FRTvie.sTS))
unset(H<%/%%I)FRTvie.sS)C
?;
+estruimos la sesin de esta (orma:
:?p"p
session<destroy()C
?;
$ediante esta (uncin se resetea la sesin, y se pierden todos los datos
guardados

También podría gustarte