Funciones de PHP
Dr. Daniel Morató
Area de Ingeniería Telemática
Departamento de Automática y Computación
Universidad Pública de Navarra
[email protected]
Laboratorio de Interfaces de Redes
http://www.tlm.unavarra.es/asignaturas/lir
Contenido
Estado de la conexion con el navegador
PHP y MySQL
Cookies
Sesiones
Otras opciones
9 Nov
Funciones de PHP
1/16
1
Estado de la conexión con el
navegador
Cuando el usuario solicita una página que es en verdad un PHP éste
empieza a ejecutarse, manteniendo la conexión establecida para poder
mandar el resultado del script
Puede que el usuario aborte la conexión (botón STOP en el navegador)
Para reconocer esta circunstancia un script PHP puede encontrarse en
diferentes estados:
NORMAL: Mientras el script se ejecuta con normaliad como se ha descrito
ABORTED: Si el usuario corta la conexión el script pasa a este estado
TIMEOUT: Se puede configurar un máximo tiempo que puede ejecutarse el script, si se
alcanza este tiempo pasa a este estado
Normalmente cuando el usuario corta la conexión y el script pasa al estrado
ABORTED termina abruptamente la ejecución del script
Se puede cambiar este modo de funcionamiento para que los scripts se
ejecuten siempre hasta finalizar (por ejemplo llamando a la función
ignore_user_abort())
El tiempo máximo típico que está configurado que pueda ejecutarse un
script sin ser abortado por TIMEOUT es de 30 segs pero puede cambiarse
por ejemplo con la función set_time_limit()
9 Nov
Funciones de PHP
2/16
PHP y MySQL
Veamos algunas funciones para conectarse y realizar
queries a un servidor de MySQL:
mysql_connect()
mysql_list_dbs(), mysql_select_db()
mysql_select_db()
mysql_query()
mysql_fetch_array()
mysql_num_rows(), mysql_insert_id()
mysql_error(), mysql_errno()
9 Nov
Funciones de PHP
3/16
2
mysql_connect()
Establecer una conexión con un servidor MySQL
resource mysql_connect ( [string server [, string username [,
string password [, bool new_link [, int client_flags]]]]])
Devuelve un recurso que identifica a esa conexión si se
lleva a cabo con éxito, si no devuelve FALSE
Ejemplo:
=
$link
"mysql_password");
mysql_connect("localhost",
"mysql_user",
Se puede cerrar esa conexión con mysql_close() pero
no hace falta, se cerrará al terminar el script de PHP
9 Nov
Funciones de PHP
4/16
mysql_list_dbs()
Lista las bases de datos disponibles en el servidor
resource mysql_list_dbs ( [resource link_identifier])
El argumento es el recurso que identifica a la conexión con la base
de datos
El resultado se puede recorrer como cualquier resultado de una
query
mysql_select_db()
Selecciona una base de datos para todos los query siguientes
bool mysql_select_db ( string database_name [, resource link_identifier])
Si se le pasa el segundo argumento (la conexión a la BD), ahora
pasa a estar activa la base de datos seleccionada
Sin segundo argumento activa esa base de datos en la conexión
más reciente al servidor
9 Nov
Funciones de PHP
5/16
3
mysql_query()
Envía una query al servidor
resource mysql_query ( string query [, resource link_identifier])
Envía una query (primer argumento) al servidor al que
hace referencia el segundo argumento, a la base de
datos que tenga activa
Si no hay segundo argumento se emplea la última
conexión con base de datos que se haya creado
Para SELECT, SHOW, EXPLAIN y DESCRIBE devuelve un
identificador de recurso o FALSE
Para otras sentencias SQL devuelve TRUE o FALSE
9 Nov
Funciones de PHP
6/16
mysql_fetch_array()
Extrae una fila del resultado de una query
array mysql_fetch_array ( resource result [, int result_type])
El primer argumento es el resultado de la query
El segundo argumento nos permite especificar cómo
queremos que nos devuelva la fila:
MYSQL_ASSOC para que sea un array asociativo cuyas claves son
los nombres de las columnas
MYSQL_NUM para que sea un array indexado por el número de
columna
MYSQL_BOTH para que tenga ambas claves (nombres e índice)
Cada vez que se llama a la función devuelve la siguiente
fila del resultado
Devuelve FALSE cuando no quedan más filas.
9 Nov
Funciones de PHP
7/16
4
mysql_num_rows()
Devuelve el número de filas que tiene el resultado de
una query de tipo SELECT
int mysql_num_rows ( resource result)
El argumento es el resultado de la query.
mysql_insert_id()
Si la última operación de tipo INSERT fue en una tabla
con una columna con el atributo AUTO_INCREMENT
devuelve el ID nuevo que se le asignó
int mysql_insert_id ( [resource link_identifier])
El argumento es la conexión con la base de datos y si
no se especifica se empleará el último que se haya
creado.
9 Nov
Funciones de PHP
8/16
mysql_error()
Devuelve el texto asociado al error que produjo
la última función de MySQL
string mysql_error ( [resource link_identifier])
Si no se produjo un error devuelve la cadena
vacía.
mysql_errno()
Devuelve el código numérico del error que
produjo la última función de MySQL
int mysql_errno ( [resource link_identifier])
9 Nov
Funciones de PHP
9/16
5
Persistent Client State HTTP
Cookies
Una de las limitaciones de la Web a la hora del desarrollo de
aplicaciones/interfaces es que su funcionamiento es sin estado
Cada petición de un URI es independiente de los anteriores y hay
poca o ninguna información de lo que ha hecho el usuario
anteriormente
Eso quiere decir que formularios que ocupen varias páginas HTML
son difíciles de implementar
Un técnica clásica ha sido, al generar un CGI una página como
resultado de un formulario esconder en esa página, en el siguiente
formulario, la información que se quiere conservar...
Formulario
crea
El CGI que procesa ese
formulario
el
siguiente y esconde en él
(atributo hidden) valores
del anterior
se
envía
de
se
el
Cuando
este
contenido
está
formulario
enviando
también
información del anterior
que se escondió en él
9 Nov
Funciones de PHP
10/16
Persistent Client State HTTP
Cookies
Las Cookies son un mecanismo más cómodo para almacenar
información de estado en el cliente
Al enviar una página Web el servidor puede indicar al cliente
que almacene cierta información
Ese cliente, cuando solicite otras páginas de ese servidor
enviará en la solicitud esa información que se le pidió
almacenar (la cookie)
Cuando el cliente solicita un URL envía las cookies que
pertenezcan a ese dominio y dentro del camino (path)
especificado
Las cookies se envían al servidor como parte de la cabecera
HTTP
Cookie: NAME1=OPAQUE_STRING1 ;NAME2=OPAQUE_STRING2 ...
Por ejemplo la librería CGIC tiene funciones para enviar y
recibir las cookies desde un CGI en C
9 Nov
Funciones de PHP
11/16
6
Persistent Client State HTTP
Cookies
Se introduce una cookie en el cliente mediante Set-
Cookie en la cabecera HTTP:
Set-Cookie: NAME =VALUE ; expires= DATE ;path= PATH ;
domain= DOMAIN_NAME ; secure
El contenido de la cookie sigue el formato NAME=VALUE (ni punto-
y-coma ni coma ni espacios). El el único atributo obligatorio
Se le puede indicar una fecha máxima de validez a la cookie
Si se ha indicado el atributo domain el cliente, cuando haga una
petición, enviará la cookie solo si en el URL al que se le solicita el
nombre de dominio de la máquina está dentro de ese dominio
Con el atributo path se puede restringir el subconjunto de URLs
del dominio a los que se les enviará la cookie al solicitar una
página
Si se indica el atributo secure esta cookie solo se enviará si la
conexión es segura (sobre SSL)
9 Nov
Funciones de PHP
12/16
Sesiones en PHP
Sucede lo mismo con los scripts PHP que con CGIs: no se guarda
estado
PHP nos permite guardar el contenido de unas variables asociándolas
a una sesión
En realidad lo que hará será guardar esas variables localmente y
mandar al usuario un identificador de sesión asociado a ese conjunto
de variables en forma de una cookie
Cuando el cliente solicita otro script PHP envía su cookie con el
identificador de sesión
Se accede al fichero correspondiente recuperando esas variables de
forma que parece que conservar el contenido asignado por el anterior
script...
script
guarda
la
Un
información obtenida del
usuario en la pagina anterior
en variables de sesión. Al
mandar la pagina siguiente
manda una cookie con el ID
de la sesión
Al llamar a un nuevo script
se le pasa el ID de la sesión
lo que este puede
con
recuperar
variables
guardadas
las
9 Nov
Funciones de PHP
13/16
7
Variables y algunas funciones
$_SESSION
Variable superglobal
Array con las variables que se guardan en la sesión (la clave es el nombre de la
variable)
bool session_start(void)
Crea una nueva sesión o recupera las variables de una
Es sesiones implementadas con cookies hay que llamar a esta función antes de
que se envíe nada al navegador (para que se pueda poner la cookie en la
cabecera HTTP)
bool session_destroy(void)
Destruye los datos asociados a esta sesión (fichero donde guarda el servidor las
variables de la sesión)
No invalida (unset) las variables ni la sesión
string session_encode(void)
Devuelve una cadena con en contenido de la sesión codificado
session_decode(string data)
Decodifica la cadena que se le pasa creando las variables que indica
9 Nov
Funciones de PHP
14/16
Otras opciones interesantes
Enviar cabecera HTTP para que el usuario
tenga que autentificarse (como con un require
user del Apache)
Que el usuario suba ficheros (se hace mediante
el POST de HTTP)
Fun
Comentarios de: Funciones de PHP (0)
No hay comentarios