Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?
23 usuarios Online (0)
Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / ver todas las variables de session de usurarios
4 respuestas recibidas | 61 visitas | Categoría PHP

ver todas las variables de session de usurarios

Avatar de kaiowa
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 11 posts)

#0 Offline kaiowa Usuario 29 abr 08 (11:54)  
Buenas,

¿Como puedo saber todos los valores de una variable de session de todos los usuarios ?

Lo que quiero hacer es controlar el stock de un producto, que si un usuario lo agrega a su cesta, el stock disminuya para el resto de usuarios. digamos que es como reservar el stock de un producto mientras se tiene en la cesta.

¿ Alguna idea ?

Un saludo, gracias

Re: ver todas las variables de session de usurarios

Avatar de iaaqov
Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3

(Nivel 3 - 234 posts)

#1 Offline iaaqov Usuario 29 abr 08 (21:38)  
yo siempre uso las BD para esto, pero bueee.
si lo que quieres es que te imprima los valores ingresados en $_SESSION
haz un print_r($_SESSION);

Re: ver todas las variables de session de usurarios

Avatar de krowork
Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3

(Nivel 3 - 199 posts)

#2 Offline krowork Usuario 30 abr 08 (09:28)  
Hola kaiowa,

Lo mejor opción es que crees unos manejadores de sesiones propios, que a parte de guardar la info de session la procese para hacer lo que tu quieres: PHP: session_set_save_handler - Manual, en esta página encontrás un ejemplo, ya puestos puede que te interese guardar las sesiones en BD.

Aun sin manejadores de session propios es posible lo que dices pero un autentico coñazo, ejecuta dos veces este script:

Código PHP


<?php
//Iniciamos sesion y añadimos un dato
//Este cambio no se verá reflejado en el archivo
//de esta sessión hasta que finalice la ejecución
session_start();
$_SESSION['hola']='HOLA';

//Obtenermos la ruta del directorio donde se guardan los
//archivos de sesion
$path_sesiones=ini_get('session.save_path');
$permisos=fileperms($path_sessiones);
echo
'Directorio sesiones: '.$path_sesiones.', permisos: 0x'.substr(sprintf('%o',$permisos), -4);


//Todos los archivos de sessiones se llaman 'sess_'.session_id()
//El archivo de esta session sólo contendrá algo después de
//la primera ejecución del script
$cont=file_get_contents($path_sesiones.DIRECTORY_SEPARATOR.'sess_'.session_id());

//Como vemos en la segunda ejecución los archivos de session sí podemos abrirlos
//con lo que sólo necesitaríamos saber cuales son los id's de las sessiones
echo $cont;

//$SESSION=unserialize($cont);

//Podríamos tratar de recorrer el directorio de sessiones
//Esto sólo sería posible si tuvieramos permisos de lectura del directorio
//en general no sucede esto

$maxtime=ini_get("session.gc_maxlifetime");
echo
'<hr>Archivos de sessiones válidas:<br/>';
foreach(
glob(ini_get('session.save_path').DIRECTORY_SEPARATOR.'sess_*') as $path){

    
//Aqui tendríamos que comprobar si la session es válida
    
if(time()-fileatime($path)<$maxtime) echo $path.'<br/>';
}
?>



Es muy probable que no te recorra el último foreach por no tener permisos de lectura del directorio. Se podría solucionar si cada vez que inicias session guardas el id de session en un archivo para luego acceder directamente a los archivos de session. El siguiente problema que te encuentras es que no hay una función especifica para deserializar los datos de un archivo de session creado por el manejador de sesiones del PHP.

Con lo que la mejor opción es que te crees tu propio manejador con la función que te he puesto al ppo.

Un saludo

http://krowork.blogspot.com

Re: ver todas las variables de session de usurarios

Avatar de kaiowa
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 11 posts)

#3 Offline kaiowa Usuario 30 abr 08 (09:36)  
Muchas gracias, muy util

Re: ver todas las variables de session de usurarios

Avatar de iaaqov
Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3

(Nivel 3 - 234 posts)

#4 Offline iaaqov Usuario hace 10días 17h  
tanto conocimiento no puede ser humano jajaja eres un erudito krowork!
gracias por compartir :D

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster