SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
Sesiones (I)


¿Qué son las sesiones?
                                       Requisitos de configuración
                                         Antes de poder utilizar este tipo de funciones es preciso modificar el fichero de
Suponemos que habrás estado            configuración de php. Editemos el fichero php.ini y busquemos esta línea:
alguna vez en un hotel y que                                          session.save_path = /tmp
recuerdas que al inscribirnos como     vamos a modificarla. La dejaremos así:
huéspedes nos facilitan una
                                                          session.save_path="C:Apachehtdocstemp"
tarjetita identificativa que
teóricamente habríamos de
                                          Al modificar esta configuración hemos asignado una ruta y un directorio (temp) en el
presentar a la hora de solicitar
                                       que se guardarán los ficheros temporales creados durante las sesiones, pero... ese
cualquier servicio del hotel
(cafetería, restaurante, etc.).        directorio aún no existe.

Al registrarnos en ese hotel              Antes de reiniciar el servidor Apache –después de efectuar los cambios anteriores–
estaremos iniciando una sesión         tendremos que crear un directorio con nombre temp dentro de htdocs y a partir de
(nuestro período de estancia) y al     ese momento ya estaremos en condiciones de reiniciar Apache con PHP habilitado para el
recibir la tarjeta identificativa se   uso de sesiones.
nos estará facilitando un
identificador de sesión, que
tiene validez temporal, ya que         Iniciando y propagando sesiones
expirará en la fecha de salida
indicada en ella.
                                         Aquí tenemos un ejemplo de como iniciar una sesión y también podremos comprobar
Imaginemos ahora que vamos al          como se propaga al llamar a la misma página si está activada la opción aceptar
restaurante.                           cookies.

Pueden ocurrir dos cosas: que            Si ejecutamos reiteradamente el script –pulsando en volver a llamar esta página–
decidamos efectuar el pago             podremos ver que no se modifica el valor del identificador de sesión.
directamente, o que pidamos que
el importe de la factura se incluya       Si bloqueamos las cookies (en este enlace está descrito el procedimiento para
en nuestra cuenta. En el segundo       hacerlo) podremos comprobar que ahora la sesión no se propaga y que cada vez que
de los casos, se reiniciará la
sesión y se registrará una nueva
                                       volvemos a llamar a la página nos aparece un nuevo valor en el identificador de
variable de sesión –el importe         sesión, es decir, se crea una nueva sesión.
del servicio– al firmar la nota de
cargo del mismo.                        <?
                                        session_start();
El responsable del restaurante
                                        #pedimos que escriba el identificador único y el nombre de la sesión
guardará esa nota de cargo –una
variable de sesión– de forma            echo session_id(),"<br>";
temporal ya que una vez abonado         echo session_name(),"<br>";
su importe, en el momento que           ?>
abandonemos el hotel, expirará la       <A Href="ejemplo116.php">Volver a llamar estallamar esta página</A>
sesión y dejará de tener validez.

Se requiere –por tanto– un                                              Ejemplo 116.php
directorio temporal en el que
almacenar las variables de                En este otro ejemplo solo hemos hecho el añadido (señalado en magenta) para el caso
sesión.
                                       de que PHP no esté compilado para --enable-trans-sid (una opción bastante habitual en
En PHP la sesiones funcionan de        los hosting que trabajan bajos sistemas operativos UNIX ó LINUX).
forma muy similar y de esa
similitud surge la necesidad de           Si lo ejecutamos podremos comprobar que ocurre exactamente lo mismo que en el
habilitar un directorio temporal       ejemplo anterior, tanto con cookies activadas como desactivadas.
antes de utilizar sesiones. Lo
hacemos cuando modificamos la           <?
configuración tal como
                                         session_start();
comentamos en la columna de la
                                        #pedimos que escriba el identificador único y el nombre de la sesión
derecha.
                                         echo session_id(),"<br>";
                                         echo session_name(),"<br>";
Funciones de sesión                     ?>
                                        <A Href="ejemplo117.php?<?=$SID ?>">Volver a llamar esta página</A>
Para la gestión de sesiones se
utilizan estas funciones:
                                                                        Ejemplo 117.php
session_start()
                                          Ahora haremos una modificación importante en el script. Al incluir en la llamada
Crea una sesión o continúa con la
                                       a la página el nombre y el identificador de sesión estamos transfiriendo –mediante
actual. En el segundo caso el
identificador de sesión debe ser       el método GET– el valor de esa variable. De esta forma, la propagación de la sesión
tranferido por medio de una            estará asegurada sea cual fuere la configuración del navegador del cliente.
variable GET o a través de una
cookie.                                   Podemos comprobar –activando/desactivando cookies– que en las sucesivas llamadas
                                       a la página se mantiene el identificador de sesión.
session_name()

Recoge el nombre de la sesión.          <?
                                        session_start();
Si no se asigna uno de forma            #pedimos que escriba el identificador único y el nombre de la sesión
explícita, utiliza como nombre de       echo session_id(),"<br>";
sesión el contenido de la directiva     echo session_name(),"<br>";
session.name del fichero php.ini.       ?>
                                        <A Href="ejemplo118.php?<?echo session_name()."=".session_id()?>">
Por defecto ese nombre suele ser
PHPSESSID, pero no está de más                 Volver a llamar esta página</A>
comprobarlo mirando el valor
actual de la directiva session.
                                                                        Ejemplo 118.php
name en info.php.

session_name('nombre')                 Sesiones con nombre propio
Esta función permite asignar un
                                          En los ejemplos siguientes se crean y propagan sesiones con nombre propio sin que
nuevo nombre a la sesión actual.
                                       ello altere las condiciones de respuesta con las opciones aceptar /no aceptar cookies.
Debemos tener en cuenta que si         También hemos incluido session_cache_limiter con las restricciones de nocache con lo
cambiamos de página y                 cual el navegador no guardará las páginas de ejemplo en la caché.
queremos mantener el mismo
identificador (conservar la sesión    Si cambiáramos los parámetros (nocache, private por public) podríamos comprobar se
anterior) esta función debe ser       almacena en la caché del navegador la página web devuelta por el servidor.
escrita, con el mismo nombre, en
la nueva página, y además, ha de
ser insertada antes de llamar a la     <?
función session_start() para que       session_cache_limiter('nocache,private');
se inicie la sesión.                   session_name('leocadia');
                                       session_start();
session_cache_limiter()
                                       #pedimos que escriba el identificador único
El limitador de caché controla las     echo session_id(),"<br>";
cabeceras HTTP enviadas al cliente.    echo session_name(),"<br>";
                                       ?>
Estas cabeceras determinan las         <A Href="ejemplo119.php">Volver a llamar esta página</A>
reglas mediante las que se habilita
la opción de que los contenidos de
las páginas puedan ser guardados                                      Ejemplo 119.php
en la caché local del cliente o se
impida tal almacenamiento.
                                       <?
En este último modo –no caché–
cada petición de página requeriría     session_cache_limiter('nocache,private');
una nueva llamada al servidor, lo      session_name('leocadia');
cual tiene –como todo en la vida–      session_start();
ventajas e inconvenientes              #pedimos que escriba el identificador único
                                       echo session_id(),"<br>";
Entre las ventajas está la garantía    echo session_name(),"<br>";
de que en cada acceso estamos          ?>
viendo la versión actualizada de la
                                       <A Href="ejemplo120.php?<?=$SID ?>">Volver a llamar esta página</A>
página, cosa que podría no ocurrir
de otro modo. El inconveniente es
que requiere una nueva petición                                       Ejemplo 120.php
que puede significar un tiempo de
espera, mientras el servidor
produce la respuesta.
                                       <?
Esta opción viene configurada por      session_cache_limiter('nocache,private');
defecto en las directivas de           session_name('leocadia');
configuración del php.ini como         session_start();
nocache.                               #pedimos que escriba el identificador único
                                       echo session_id(),"<br>";
Para evitar –sea cual fuera la
                                       echo session_name(),"<br>";
configuración de php.ini– el
almacenamiento de las páginas en       ?>
la caché del cliente hemos de          <A Href="ejemplo121.php?<?echo session_name()."=".session_id()?>">
utilizar:                                                Volver a llamar esta página</A>

session_cache_limiter
('nocache,private').                                                  Ejemplo 121.php

De igual forma que ocurría con
session_name, si utilizamos está      Las cookies de sesión y sus parámetros
función debemos escribirla antes
que session_name y –también              Para el caso de que el navegador del cliente tenga activada la opción de aceptar
igual que en aquel caso–              cookies PHP dispone de una función que permite leer los parámetros de esa cookie. Para
deberemos repetirla en cada uno       ello dispone de la función session_get_cookie_params() que devuelve un array
de los documentos.                    asociativo con los siguientes índices:
¡Advertencia!                         lifetime: Indica el tiempo de duración de la duración de la cookie
                                      path: Indica la ruta -en el ordenador del cliente- en la que se almacenan los datos de la
El orden de escritura de estas
                                      sesión
instrucciones sería el siguiente:
                                      domain :Indica el dominio de procedencia de la cookie
<?                                    secure :Indica si la cookie solo puede ser enviada a través de conexiones seguras (1) o
session_cache_limiter();              si no considera esa posibilidad (0).
session_name('nombre');               Los valores por defecto para estos parámetros se pueden establecer en la configuración
session_start();                      del fichero php.ini. Si visualizamos info.php podremos ver –en las directivas session.
.....                                 cookie_xxx nuestros valor por defecto– y observaremos que session.cookie_lifetime
?>
                                      tiene valor 0, razón por la cual si –con la opción aceptar cookies activada– ejecutamos
Es muy importante mantener ese        cualquiera de los script anteriores y miramos el directorio Temporal Internet Files, no
orden y que este bloque de            encontraremos ninguna de estas cookies, dado que su plazo de expiración es cero.
instrucciones sea el primer
elemento de la página -antes de        <?
cualquier otra etiqueta- y que no
                                       session_name('mi_sesion');
haya líneas en blanco ni antes de
la etiqueta <? ni entre ella y las
                                       session_start();
llamadas a estas funciones.            echo session_id(),"<br>";
                                       echo session_name(),"<br>";
                                       # recogemos en la variable $a el array con los datos de la sesión
Propagación de las                     $a=session_get_cookie_params();
sesiones                               foreach($a as $c=>$v){
                                               echo $c,"--->",$v,"<br>";
La verdadera utilidad de las           }
sesiones es la posibilidad de que      ?>
sean propagadas, es decir, que         <A Href="ejemplo122.php">Volver a llamar esta página</A>
tanto el identificador de sesión
como los valores de las variables
de sesión -luego hablaremos de                                        Ejemplo 122.php
estas variables- puedan ir pasando
de una página a otra sin necesidad
de recurrir al uso de formularios.     <?
Para entendernos, se trata de dar      session_name('mi_sesion');
validez y utilizar la misma tarjeta    session_start();
para movernos en las diferentes        echo session_id(),"<br>";
secciones del hotel que hemos          echo session_name(),"<br>";
utilizado como ejemplo.                # recogemos en la variable $a el array con los datos de la sesión
                                       $a=session_get_cookie_params();
La forma habitual de propagar las      foreach($a as $c=>$v){
sesiones es a través de cookies,                echo $c,"--->",$v,"<br>";
pero como quiera que el usuario         }
tiene la posibilidad de activar la
                                        ?>
opción no aceptar cookies y eso es
algo que no podemos prever, PHP         <A Href="ejemplo123.php?<?=$SID ?>">Volver a llamar está página</A>
dispone una opción alternativa que
permite la propagación a través de
                                                                       Ejemplo 123.php
la URL.

Caso de que el cliente
tenga activada                          <?
la opción aceptar cookies               session_name('mi_sesion');
                                        session_start();
Si queremos que las sesiones se         echo session_id(),"<br>";
propaguen únicamente en el caso
                                        echo session_name(),"<br>";
de que esté activada la opción
aceptar cookies en el navegador
                                        # recogemos en la variable $a el array con los datos de la sesión
bastará con hacer la llamada a la       $a=session_get_cookie_params();
nueva página siguiendo el método        foreach($a as $c=>$v){
tradicional, es decir:                          echo $c,"--->",$v,"<br>";
                                        }
<A href="pagxx.php">                    ?>
                                        <A Href="ejemplo124.php?<?echo session_name()."=".session_id()?>">
y que esa nueva página contenga
sin que lo preceda ninguna
                                                          Volver a llamar esta página</A>
línea en blanco el script siguiente:

<?                                                                     Ejemplo 124.php
session_cache_limiter();
session_name('nombre');                Las configuraciones por defecto de session.cookie pueden cambiarse sin necesidad de
session_start();                       modificar el fichero php.ini.
.....
?>                                        Mediante la función session_set_cookie_params(duración ,'path','dominio',segura)
                                       se pueden configurar esos parámetros de forma temporal–unicamente para la página
donde session_cache_limiter no es
                                       en la que está insertado– y que como en los casos anteriores tiene tres posibilidades
un elemento imprescindible y
                                       de script.
podremos incluirlo o no, de
acuerdo con nuestro interés.
                                         En los ejemplos siguientes, se escribirá -siempre que esté configurada la opción
Con session_name ocurre algo           aceptar cookies en el navegador del cliente- una cookie que tendrá una caducidad de
similar. Si la sesión fue iniciada     10 minutos (el valor 10 de session_set_cookie_params).
con un nombre distinto al que le
asigna por defecto PHP, debemos          Esa cookie se guardará en el mismo directorio (/) donde se guardan las páginas web
escribir en el script anterior la      visitadas (el famoso C:WINDOWSTemporary Internet Files, en la configuración por
función session_name, y                defecto de IE), pero..., eso solo ocurrirá si -tal como ves en el ejemplo- pones en el
además, debe contener el mismo         parámetro dominio el nombre real del dominio donde está alojada la web.
nombre que le habíamos asignado
en la página de procedencia.           Si el nombre de dominio no coincide con que alberga la página –razonable criterio de
                                       seguridad– no se guardará la cookie.
Si no se asigna ningún nombre
tomará PHPSESSID –nombre por
defecto– en todas las páginas y no      <?
será necesaria la instrucción           session_set_cookie_params (10,"/","localhost", 0);
session_name.                           session_name('mi_sesion');
                                        session_start();
Caso de cookies                         echo session_id(),"<br>";
desahabilitadas                         echo session_name(),"<br>";
                                        $a=session_get_cookie_params();
                                        foreach($a as $c=>$v){
Para garantizar la propagación de
                                                echo $c,"--->",$v,"<br>";
las sesiones –aún cuando esté
                                        }
activada la opción no aceptar
cookies– tendremos que pasar el         ?>
identificador de sesión junto con       <A Href="ejemplo125.php">Volver a llamar esta página</A>
las llamadas a las páginas
siguientes. Para ello se requiere la
siguiente sintaxis:                                                    Ejemplo 125.php

<A href="pagxx.php?
<? echo session_name(). "="             <?
.session_id()?>                         session_set_cookie_params (10,"/","localhost", 0);
                                        session_name('mi_sesion');
Con esta sintaxis, después de
                                        session_start();
escribir el ? (recordemos que es la
forma de indicar que añadimos           echo session_id(),"<br>";
variables y valores para que sean       echo session_name(),"<br>";
transferidos junto con la petición      $a=session_get_cookie_params();
de la página) estaremos pidiendo a      foreach($a as $c=>$v){
PHP que escriba como nombre de                  echo $c,"--->",$v,"<br>";
variable el nombre de la sesión y       }
como valor de esa variable,             ?>
después de insertar el signo igual,     <A Href="ejemplo126.php?<?=$SID ?>">Volver a llamar esta página</A>
el identificador de sesión.

Es evidente que la utilización de                                      Ejemplo 126.php
esta opción nos permite asegurar
que las sesiones y sus variables
podrán ser usadas sin riesgos de
que una configuración inadecuada        <?
por parte del cliente produzca          session_set_cookie_params (10,"/","localhost", 0);
resultados imprevisibles.               session_name('mi_sesion');
                                        session_start();
    Ejercicio nº 36                     echo session_id(),"<br>";
                                        echo session_name(),"<br>";
   Desarrolla un formulario en el       $a=session_get_cookie_params();
   que el usuario pueda escribir        foreach($a as $c=>$v){
   su nombre y elegir un color                  echo $c,"--->",$v,"<br>";
   de fondo. Al enviar este             }
                                        ?>
   formulario los valores de
                                        <A Href="ejemplo127.php?<?echo session_name()."=".session_id()?>">
   ambos campos se
                                                          Volver a llamar esta página</A>
registrarán en variables de
sesión y se visualizará una
nueva página que tendrá el                                     Ejemplo 127.php
color de fondo elegido y que
presentará el nombre de         ¡Cuidado!
usuario. Además, esta
página, contendrá un enlace    Antes de empezar a desarrollar el ejercicio que te proponemos al margen, te sugerimos que
a una segunda página a la      leas los contenidos que hemos incluido en la página siguiente.
que deberán propagarse los
valores anteriores
                                                               Anterior   Indice   Siguiente

Más contenido relacionado

La actualidad más candente

Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
oskrsolis
 
Tutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicasTutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicas
UTP
 
Terminado proyecto final de_administracion_de_redes
Terminado proyecto final de_administracion_de_redesTerminado proyecto final de_administracion_de_redes
Terminado proyecto final de_administracion_de_redes
tovar242
 
Proyecto final de_administracion_de_redes
Proyecto final de_administracion_de_redesProyecto final de_administracion_de_redes
Proyecto final de_administracion_de_redes
monchy17
 
Manual de instalación de pentaho para windows 7
Manual de instalación de pentaho para windows 7Manual de instalación de pentaho para windows 7
Manual de instalación de pentaho para windows 7
German Pinchao
 
26 configuración de la autenticación
26  configuración de la autenticación26  configuración de la autenticación
26 configuración de la autenticación
Aprende Viendo
 
Como unir windows xp ó windows 7 a un dominio windows server 2008
Como unir windows xp ó windows 7 a un dominio windows server 2008Como unir windows xp ó windows 7 a un dominio windows server 2008
Como unir windows xp ó windows 7 a un dominio windows server 2008
toboreon
 

La actualidad más candente (18)

Introducción a MySql
Introducción a MySqlIntroducción a MySql
Introducción a MySql
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)
 
Tutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicasTutorial linux centos configuraciones básicas
Tutorial linux centos configuraciones básicas
 
Tutorial básico de my sql
Tutorial básico de my sqlTutorial básico de my sql
Tutorial básico de my sql
 
CMS Joomla y Wordpress
CMS Joomla y WordpressCMS Joomla y Wordpress
CMS Joomla y Wordpress
 
Añadir Ubuntu al Active Directory
Añadir Ubuntu al Active DirectoryAñadir Ubuntu al Active Directory
Añadir Ubuntu al Active Directory
 
Sesion n°6
Sesion n°6Sesion n°6
Sesion n°6
 
Tema 7 Trabajando Con Mysql
Tema 7 Trabajando Con MysqlTema 7 Trabajando Con Mysql
Tema 7 Trabajando Con Mysql
 
Terminado proyecto final de_administracion_de_redes
Terminado proyecto final de_administracion_de_redesTerminado proyecto final de_administracion_de_redes
Terminado proyecto final de_administracion_de_redes
 
Proyecto final de_administracion_de_redes
Proyecto final de_administracion_de_redesProyecto final de_administracion_de_redes
Proyecto final de_administracion_de_redes
 
Cherokee
CherokeeCherokee
Cherokee
 
Tutorial mysql
Tutorial mysqlTutorial mysql
Tutorial mysql
 
Manual de instalación de pentaho para windows 7
Manual de instalación de pentaho para windows 7Manual de instalación de pentaho para windows 7
Manual de instalación de pentaho para windows 7
 
Configurar Una Red By Clavita
Configurar Una Red By ClavitaConfigurar Una Red By Clavita
Configurar Una Red By Clavita
 
26 configuración de la autenticación
26  configuración de la autenticación26  configuración de la autenticación
26 configuración de la autenticación
 
Instalacion de Pentaho 5 con PostgreSQL 9.3
Instalacion de Pentaho 5 con PostgreSQL 9.3Instalacion de Pentaho 5 con PostgreSQL 9.3
Instalacion de Pentaho 5 con PostgreSQL 9.3
 
Como unir windows xp ó windows 7 a un dominio windows server 2008
Como unir windows xp ó windows 7 a un dominio windows server 2008Como unir windows xp ó windows 7 a un dominio windows server 2008
Como unir windows xp ó windows 7 a un dominio windows server 2008
 

Destacado

Planes de desarrollo 11 c
Planes de desarrollo   11 cPlanes de desarrollo   11 c
Planes de desarrollo 11 c
Josema España
 
Aparato excretor
Aparato excretorAparato excretor
Aparato excretor
COMBISOL
 
Los animales
Los animalesLos animales
Los animales
jchazu
 
Nuest amvocab
Nuest amvocabNuest amvocab
Nuest amvocab
nidree
 
Unitat 4. els plans d'educació bilingüe
Unitat 4. els plans d'educació bilingüeUnitat 4. els plans d'educació bilingüe
Unitat 4. els plans d'educació bilingüe
Nombre Apellidos
 
Aprende Inglés en 7 Días - Ramon Campayo
Aprende Inglés en 7 Días - Ramon CampayoAprende Inglés en 7 Días - Ramon Campayo
Aprende Inglés en 7 Días - Ramon Campayo
gsoldier
 
Alm como factor diferenciador
Alm como factor diferenciadorAlm como factor diferenciador
Alm como factor diferenciador
Rodrigo Corral
 
Ponencia "Fundraising en la universidad". XII Congreso de Fundraising. Barcel...
Ponencia "Fundraising en la universidad". XII Congreso de Fundraising. Barcel...Ponencia "Fundraising en la universidad". XII Congreso de Fundraising. Barcel...
Ponencia "Fundraising en la universidad". XII Congreso de Fundraising. Barcel...
Juan Salvador Pérez Villanueva
 
Babilonia
BabiloniaBabilonia
Babilonia
Web Ar
 
Limites constitucionales al derecho de dominio
Limites constitucionales al derecho de dominioLimites constitucionales al derecho de dominio
Limites constitucionales al derecho de dominio
Diego Javier Mesa Rada
 
Repaso verano mat 5º averroes
Repaso verano mat 5º averroesRepaso verano mat 5º averroes
Repaso verano mat 5º averroes
giner27ju
 

Destacado (20)

Defensa treballinvestigacio juansa
Defensa treballinvestigacio juansaDefensa treballinvestigacio juansa
Defensa treballinvestigacio juansa
 
La guerra civil
La guerra civilLa guerra civil
La guerra civil
 
Planes de desarrollo 11 c
Planes de desarrollo   11 cPlanes de desarrollo   11 c
Planes de desarrollo 11 c
 
Aparato excretor
Aparato excretorAparato excretor
Aparato excretor
 
Pagina c
Pagina c Pagina c
Pagina c
 
Advanced series
Advanced seriesAdvanced series
Advanced series
 
Evaluación alumnos #idredes
Evaluación alumnos #idredesEvaluación alumnos #idredes
Evaluación alumnos #idredes
 
Los animales
Los animalesLos animales
Los animales
 
David ugarte
David ugarteDavid ugarte
David ugarte
 
1. 8. Momentos del Colegio y la Sociedad. Capitulo I Sección VIII
1. 8. Momentos del Colegio y la Sociedad. Capitulo I   Sección VIII1. 8. Momentos del Colegio y la Sociedad. Capitulo I   Sección VIII
1. 8. Momentos del Colegio y la Sociedad. Capitulo I Sección VIII
 
Nuest amvocab
Nuest amvocabNuest amvocab
Nuest amvocab
 
Unitat 4. els plans d'educació bilingüe
Unitat 4. els plans d'educació bilingüeUnitat 4. els plans d'educació bilingüe
Unitat 4. els plans d'educació bilingüe
 
La Crisis de 1929
La Crisis de 1929La Crisis de 1929
La Crisis de 1929
 
Aprende Inglés en 7 Días - Ramon Campayo
Aprende Inglés en 7 Días - Ramon CampayoAprende Inglés en 7 Días - Ramon Campayo
Aprende Inglés en 7 Días - Ramon Campayo
 
Alm como factor diferenciador
Alm como factor diferenciadorAlm como factor diferenciador
Alm como factor diferenciador
 
Articulo +
Articulo +Articulo +
Articulo +
 
Ponencia "Fundraising en la universidad". XII Congreso de Fundraising. Barcel...
Ponencia "Fundraising en la universidad". XII Congreso de Fundraising. Barcel...Ponencia "Fundraising en la universidad". XII Congreso de Fundraising. Barcel...
Ponencia "Fundraising en la universidad". XII Congreso de Fundraising. Barcel...
 
Babilonia
BabiloniaBabilonia
Babilonia
 
Limites constitucionales al derecho de dominio
Limites constitucionales al derecho de dominioLimites constitucionales al derecho de dominio
Limites constitucionales al derecho de dominio
 
Repaso verano mat 5º averroes
Repaso verano mat 5º averroesRepaso verano mat 5º averroes
Repaso verano mat 5º averroes
 

Similar a 71 Php. Sesiones I

Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5
cognos_uie
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5
cognos_uie
 
Mod alias - Apache
Mod alias - ApacheMod alias - Apache
Mod alias - Apache
Andree Fdez
 
Linux ud18 - integracion clientes windows en un controlador de dominio linu...
Linux   ud18 - integracion clientes windows en un controlador de dominio linu...Linux   ud18 - integracion clientes windows en un controlador de dominio linu...
Linux ud18 - integracion clientes windows en un controlador de dominio linu...
Javier Muñoz
 

Similar a 71 Php. Sesiones I (20)

Sesiones en PHP
Sesiones en PHPSesiones en PHP
Sesiones en PHP
 
Funciones
FuncionesFunciones
Funciones
 
PHP Tema 5 - Sesiones
PHP Tema 5 - SesionesPHP Tema 5 - Sesiones
PHP Tema 5 - Sesiones
 
Sesiones
SesionesSesiones
Sesiones
 
U3_Leguaje PHP-Semana 07.pdf
U3_Leguaje PHP-Semana 07.pdfU3_Leguaje PHP-Semana 07.pdf
U3_Leguaje PHP-Semana 07.pdf
 
72 Php. Sesiones II
72 Php. Sesiones II72 Php. Sesiones II
72 Php. Sesiones II
 
Cookies y sesiones en php
Cookies y sesiones en phpCookies y sesiones en php
Cookies y sesiones en php
 
2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5
 
tema.pptx
tema.pptxtema.pptx
tema.pptx
 
Php y MySqul
Php y MySqul  Php y MySqul
Php y MySqul
 
Daw02 tarea
Daw02 tareaDaw02 tarea
Daw02 tarea
 
Autentificacion sql antonio_hermoso
Autentificacion sql antonio_hermosoAutentificacion sql antonio_hermoso
Autentificacion sql antonio_hermoso
 
Mod alias - Apache
Mod alias - ApacheMod alias - Apache
Mod alias - Apache
 
Mod alias
Mod aliasMod alias
Mod alias
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
Manual del usuario
Manual del usuarioManual del usuario
Manual del usuario
 
Programación de códigos en PHP
Programación de códigos en PHPProgramación de códigos en PHP
Programación de códigos en PHP
 
Linux ud18 - integracion clientes windows en un controlador de dominio linu...
Linux   ud18 - integracion clientes windows en un controlador de dominio linu...Linux   ud18 - integracion clientes windows en un controlador de dominio linu...
Linux ud18 - integracion clientes windows en un controlador de dominio linu...
 

Más de José M. Padilla

Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTInforme Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
José M. Padilla
 
Manual multimedia y web 2.0
Manual multimedia y web 2.0Manual multimedia y web 2.0
Manual multimedia y web 2.0
José M. Padilla
 
Guia optimizacion motores_busqueda
Guia optimizacion motores_busquedaGuia optimizacion motores_busqueda
Guia optimizacion motores_busqueda
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantModulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerModulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpModulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioModulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
José M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
José M. Padilla
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
José M. Padilla
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.
José M. Padilla
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20
José M. Padilla
 

Más de José M. Padilla (20)

Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTInforme Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
 
Manual multimedia y web 2.0
Manual multimedia y web 2.0Manual multimedia y web 2.0
Manual multimedia y web 2.0
 
Guia optimizacion motores_busqueda
Guia optimizacion motores_busquedaGuia optimizacion motores_busqueda
Guia optimizacion motores_busqueda
 
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
 
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantModulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
 
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerModulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpModulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
 
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioModulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
 
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

71 Php. Sesiones I

  • 1. Sesiones (I) ¿Qué son las sesiones? Requisitos de configuración Antes de poder utilizar este tipo de funciones es preciso modificar el fichero de Suponemos que habrás estado configuración de php. Editemos el fichero php.ini y busquemos esta línea: alguna vez en un hotel y que session.save_path = /tmp recuerdas que al inscribirnos como vamos a modificarla. La dejaremos así: huéspedes nos facilitan una session.save_path="C:Apachehtdocstemp" tarjetita identificativa que teóricamente habríamos de Al modificar esta configuración hemos asignado una ruta y un directorio (temp) en el presentar a la hora de solicitar que se guardarán los ficheros temporales creados durante las sesiones, pero... ese cualquier servicio del hotel (cafetería, restaurante, etc.). directorio aún no existe. Al registrarnos en ese hotel Antes de reiniciar el servidor Apache –después de efectuar los cambios anteriores– estaremos iniciando una sesión tendremos que crear un directorio con nombre temp dentro de htdocs y a partir de (nuestro período de estancia) y al ese momento ya estaremos en condiciones de reiniciar Apache con PHP habilitado para el recibir la tarjeta identificativa se uso de sesiones. nos estará facilitando un identificador de sesión, que tiene validez temporal, ya que Iniciando y propagando sesiones expirará en la fecha de salida indicada en ella. Aquí tenemos un ejemplo de como iniciar una sesión y también podremos comprobar Imaginemos ahora que vamos al como se propaga al llamar a la misma página si está activada la opción aceptar restaurante. cookies. Pueden ocurrir dos cosas: que Si ejecutamos reiteradamente el script –pulsando en volver a llamar esta página– decidamos efectuar el pago podremos ver que no se modifica el valor del identificador de sesión. directamente, o que pidamos que el importe de la factura se incluya Si bloqueamos las cookies (en este enlace está descrito el procedimiento para en nuestra cuenta. En el segundo hacerlo) podremos comprobar que ahora la sesión no se propaga y que cada vez que de los casos, se reiniciará la sesión y se registrará una nueva volvemos a llamar a la página nos aparece un nuevo valor en el identificador de variable de sesión –el importe sesión, es decir, se crea una nueva sesión. del servicio– al firmar la nota de cargo del mismo. <? session_start(); El responsable del restaurante #pedimos que escriba el identificador único y el nombre de la sesión guardará esa nota de cargo –una variable de sesión– de forma echo session_id(),"<br>"; temporal ya que una vez abonado echo session_name(),"<br>"; su importe, en el momento que ?> abandonemos el hotel, expirará la <A Href="ejemplo116.php">Volver a llamar estallamar esta página</A> sesión y dejará de tener validez. Se requiere –por tanto– un Ejemplo 116.php directorio temporal en el que almacenar las variables de En este otro ejemplo solo hemos hecho el añadido (señalado en magenta) para el caso sesión. de que PHP no esté compilado para --enable-trans-sid (una opción bastante habitual en En PHP la sesiones funcionan de los hosting que trabajan bajos sistemas operativos UNIX ó LINUX). forma muy similar y de esa similitud surge la necesidad de Si lo ejecutamos podremos comprobar que ocurre exactamente lo mismo que en el habilitar un directorio temporal ejemplo anterior, tanto con cookies activadas como desactivadas. antes de utilizar sesiones. Lo hacemos cuando modificamos la <? configuración tal como session_start(); comentamos en la columna de la #pedimos que escriba el identificador único y el nombre de la sesión derecha. echo session_id(),"<br>"; echo session_name(),"<br>"; Funciones de sesión ?> <A Href="ejemplo117.php?<?=$SID ?>">Volver a llamar esta página</A> Para la gestión de sesiones se utilizan estas funciones: Ejemplo 117.php session_start() Ahora haremos una modificación importante en el script. Al incluir en la llamada Crea una sesión o continúa con la a la página el nombre y el identificador de sesión estamos transfiriendo –mediante actual. En el segundo caso el identificador de sesión debe ser el método GET– el valor de esa variable. De esta forma, la propagación de la sesión tranferido por medio de una estará asegurada sea cual fuere la configuración del navegador del cliente. variable GET o a través de una cookie. Podemos comprobar –activando/desactivando cookies– que en las sucesivas llamadas a la página se mantiene el identificador de sesión. session_name() Recoge el nombre de la sesión. <? session_start(); Si no se asigna uno de forma #pedimos que escriba el identificador único y el nombre de la sesión explícita, utiliza como nombre de echo session_id(),"<br>"; sesión el contenido de la directiva echo session_name(),"<br>"; session.name del fichero php.ini. ?> <A Href="ejemplo118.php?<?echo session_name()."=".session_id()?>"> Por defecto ese nombre suele ser PHPSESSID, pero no está de más Volver a llamar esta página</A> comprobarlo mirando el valor actual de la directiva session. Ejemplo 118.php name en info.php. session_name('nombre') Sesiones con nombre propio Esta función permite asignar un En los ejemplos siguientes se crean y propagan sesiones con nombre propio sin que nuevo nombre a la sesión actual. ello altere las condiciones de respuesta con las opciones aceptar /no aceptar cookies. Debemos tener en cuenta que si También hemos incluido session_cache_limiter con las restricciones de nocache con lo
  • 2. cambiamos de página y cual el navegador no guardará las páginas de ejemplo en la caché. queremos mantener el mismo identificador (conservar la sesión Si cambiáramos los parámetros (nocache, private por public) podríamos comprobar se anterior) esta función debe ser almacena en la caché del navegador la página web devuelta por el servidor. escrita, con el mismo nombre, en la nueva página, y además, ha de ser insertada antes de llamar a la <? función session_start() para que session_cache_limiter('nocache,private'); se inicie la sesión. session_name('leocadia'); session_start(); session_cache_limiter() #pedimos que escriba el identificador único El limitador de caché controla las echo session_id(),"<br>"; cabeceras HTTP enviadas al cliente. echo session_name(),"<br>"; ?> Estas cabeceras determinan las <A Href="ejemplo119.php">Volver a llamar esta página</A> reglas mediante las que se habilita la opción de que los contenidos de las páginas puedan ser guardados Ejemplo 119.php en la caché local del cliente o se impida tal almacenamiento. <? En este último modo –no caché– cada petición de página requeriría session_cache_limiter('nocache,private'); una nueva llamada al servidor, lo session_name('leocadia'); cual tiene –como todo en la vida– session_start(); ventajas e inconvenientes #pedimos que escriba el identificador único echo session_id(),"<br>"; Entre las ventajas está la garantía echo session_name(),"<br>"; de que en cada acceso estamos ?> viendo la versión actualizada de la <A Href="ejemplo120.php?<?=$SID ?>">Volver a llamar esta página</A> página, cosa que podría no ocurrir de otro modo. El inconveniente es que requiere una nueva petición Ejemplo 120.php que puede significar un tiempo de espera, mientras el servidor produce la respuesta. <? Esta opción viene configurada por session_cache_limiter('nocache,private'); defecto en las directivas de session_name('leocadia'); configuración del php.ini como session_start(); nocache. #pedimos que escriba el identificador único echo session_id(),"<br>"; Para evitar –sea cual fuera la echo session_name(),"<br>"; configuración de php.ini– el almacenamiento de las páginas en ?> la caché del cliente hemos de <A Href="ejemplo121.php?<?echo session_name()."=".session_id()?>"> utilizar: Volver a llamar esta página</A> session_cache_limiter ('nocache,private'). Ejemplo 121.php De igual forma que ocurría con session_name, si utilizamos está Las cookies de sesión y sus parámetros función debemos escribirla antes que session_name y –también Para el caso de que el navegador del cliente tenga activada la opción de aceptar igual que en aquel caso– cookies PHP dispone de una función que permite leer los parámetros de esa cookie. Para deberemos repetirla en cada uno ello dispone de la función session_get_cookie_params() que devuelve un array de los documentos. asociativo con los siguientes índices: ¡Advertencia! lifetime: Indica el tiempo de duración de la duración de la cookie path: Indica la ruta -en el ordenador del cliente- en la que se almacenan los datos de la El orden de escritura de estas sesión instrucciones sería el siguiente: domain :Indica el dominio de procedencia de la cookie <? secure :Indica si la cookie solo puede ser enviada a través de conexiones seguras (1) o session_cache_limiter(); si no considera esa posibilidad (0). session_name('nombre'); Los valores por defecto para estos parámetros se pueden establecer en la configuración session_start(); del fichero php.ini. Si visualizamos info.php podremos ver –en las directivas session. ..... cookie_xxx nuestros valor por defecto– y observaremos que session.cookie_lifetime ?> tiene valor 0, razón por la cual si –con la opción aceptar cookies activada– ejecutamos Es muy importante mantener ese cualquiera de los script anteriores y miramos el directorio Temporal Internet Files, no orden y que este bloque de encontraremos ninguna de estas cookies, dado que su plazo de expiración es cero. instrucciones sea el primer elemento de la página -antes de <? cualquier otra etiqueta- y que no session_name('mi_sesion'); haya líneas en blanco ni antes de la etiqueta <? ni entre ella y las session_start(); llamadas a estas funciones. echo session_id(),"<br>"; echo session_name(),"<br>"; # recogemos en la variable $a el array con los datos de la sesión Propagación de las $a=session_get_cookie_params(); sesiones foreach($a as $c=>$v){ echo $c,"--->",$v,"<br>"; La verdadera utilidad de las } sesiones es la posibilidad de que ?> sean propagadas, es decir, que <A Href="ejemplo122.php">Volver a llamar esta página</A> tanto el identificador de sesión como los valores de las variables de sesión -luego hablaremos de Ejemplo 122.php estas variables- puedan ir pasando de una página a otra sin necesidad de recurrir al uso de formularios. <? Para entendernos, se trata de dar session_name('mi_sesion'); validez y utilizar la misma tarjeta session_start(); para movernos en las diferentes echo session_id(),"<br>"; secciones del hotel que hemos echo session_name(),"<br>"; utilizado como ejemplo. # recogemos en la variable $a el array con los datos de la sesión $a=session_get_cookie_params(); La forma habitual de propagar las foreach($a as $c=>$v){
  • 3. sesiones es a través de cookies, echo $c,"--->",$v,"<br>"; pero como quiera que el usuario } tiene la posibilidad de activar la ?> opción no aceptar cookies y eso es algo que no podemos prever, PHP <A Href="ejemplo123.php?<?=$SID ?>">Volver a llamar está página</A> dispone una opción alternativa que permite la propagación a través de Ejemplo 123.php la URL. Caso de que el cliente tenga activada <? la opción aceptar cookies session_name('mi_sesion'); session_start(); Si queremos que las sesiones se echo session_id(),"<br>"; propaguen únicamente en el caso echo session_name(),"<br>"; de que esté activada la opción aceptar cookies en el navegador # recogemos en la variable $a el array con los datos de la sesión bastará con hacer la llamada a la $a=session_get_cookie_params(); nueva página siguiendo el método foreach($a as $c=>$v){ tradicional, es decir: echo $c,"--->",$v,"<br>"; } <A href="pagxx.php"> ?> <A Href="ejemplo124.php?<?echo session_name()."=".session_id()?>"> y que esa nueva página contenga sin que lo preceda ninguna Volver a llamar esta página</A> línea en blanco el script siguiente: <? Ejemplo 124.php session_cache_limiter(); session_name('nombre'); Las configuraciones por defecto de session.cookie pueden cambiarse sin necesidad de session_start(); modificar el fichero php.ini. ..... ?> Mediante la función session_set_cookie_params(duración ,'path','dominio',segura) se pueden configurar esos parámetros de forma temporal–unicamente para la página donde session_cache_limiter no es en la que está insertado– y que como en los casos anteriores tiene tres posibilidades un elemento imprescindible y de script. podremos incluirlo o no, de acuerdo con nuestro interés. En los ejemplos siguientes, se escribirá -siempre que esté configurada la opción Con session_name ocurre algo aceptar cookies en el navegador del cliente- una cookie que tendrá una caducidad de similar. Si la sesión fue iniciada 10 minutos (el valor 10 de session_set_cookie_params). con un nombre distinto al que le asigna por defecto PHP, debemos Esa cookie se guardará en el mismo directorio (/) donde se guardan las páginas web escribir en el script anterior la visitadas (el famoso C:WINDOWSTemporary Internet Files, en la configuración por función session_name, y defecto de IE), pero..., eso solo ocurrirá si -tal como ves en el ejemplo- pones en el además, debe contener el mismo parámetro dominio el nombre real del dominio donde está alojada la web. nombre que le habíamos asignado en la página de procedencia. Si el nombre de dominio no coincide con que alberga la página –razonable criterio de seguridad– no se guardará la cookie. Si no se asigna ningún nombre tomará PHPSESSID –nombre por defecto– en todas las páginas y no <? será necesaria la instrucción session_set_cookie_params (10,"/","localhost", 0); session_name. session_name('mi_sesion'); session_start(); Caso de cookies echo session_id(),"<br>"; desahabilitadas echo session_name(),"<br>"; $a=session_get_cookie_params(); foreach($a as $c=>$v){ Para garantizar la propagación de echo $c,"--->",$v,"<br>"; las sesiones –aún cuando esté } activada la opción no aceptar cookies– tendremos que pasar el ?> identificador de sesión junto con <A Href="ejemplo125.php">Volver a llamar esta página</A> las llamadas a las páginas siguientes. Para ello se requiere la siguiente sintaxis: Ejemplo 125.php <A href="pagxx.php? <? echo session_name(). "=" <? .session_id()?> session_set_cookie_params (10,"/","localhost", 0); session_name('mi_sesion'); Con esta sintaxis, después de session_start(); escribir el ? (recordemos que es la forma de indicar que añadimos echo session_id(),"<br>"; variables y valores para que sean echo session_name(),"<br>"; transferidos junto con la petición $a=session_get_cookie_params(); de la página) estaremos pidiendo a foreach($a as $c=>$v){ PHP que escriba como nombre de echo $c,"--->",$v,"<br>"; variable el nombre de la sesión y } como valor de esa variable, ?> después de insertar el signo igual, <A Href="ejemplo126.php?<?=$SID ?>">Volver a llamar esta página</A> el identificador de sesión. Es evidente que la utilización de Ejemplo 126.php esta opción nos permite asegurar que las sesiones y sus variables podrán ser usadas sin riesgos de que una configuración inadecuada <? por parte del cliente produzca session_set_cookie_params (10,"/","localhost", 0); resultados imprevisibles. session_name('mi_sesion'); session_start(); Ejercicio nº 36 echo session_id(),"<br>"; echo session_name(),"<br>"; Desarrolla un formulario en el $a=session_get_cookie_params(); que el usuario pueda escribir foreach($a as $c=>$v){ su nombre y elegir un color echo $c,"--->",$v,"<br>"; de fondo. Al enviar este } ?> formulario los valores de <A Href="ejemplo127.php?<?echo session_name()."=".session_id()?>"> ambos campos se Volver a llamar esta página</A>
  • 4. registrarán en variables de sesión y se visualizará una nueva página que tendrá el Ejemplo 127.php color de fondo elegido y que presentará el nombre de ¡Cuidado! usuario. Además, esta página, contendrá un enlace Antes de empezar a desarrollar el ejercicio que te proponemos al margen, te sugerimos que a una segunda página a la leas los contenidos que hemos incluido en la página siguiente. que deberán propagarse los valores anteriores Anterior Indice Siguiente