Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consulta sobre uso de $_SESSION[]

Estas en el tema de Consulta sobre uso de $_SESSION[] en el foro de PHP en Foros del Web. Hola chicos, una consulta: Estoy desarrollando un aplicativo en PHP/MySQL. Y como variables globales ( Código PHP: $_SESSION []  ) tengo: PeriodoDeTrabajo (Para grabar los ...
  #1 (permalink)  
Antiguo 12/07/2018, 15:54
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 566
Antigüedad: 9 años, 5 meses
Puntos: 6
Pregunta Consulta sobre uso de $_SESSION[]

Hola chicos, una consulta:
Estoy desarrollando un aplicativo en PHP/MySQL.
Y como variables globales (
Código PHP:
$_SESSION[] 
) tengo:
  1. PeriodoDeTrabajo (Para grabar los campos en el periodo de trabajo)
  2. Usuario (Para mostrarlo cada vez que se requiere)
  3. NivelUsuario (Para restringir el acceso a algunas opciones)
  4. ValidarLogin (para verificar que hay un usuario logueado para controlar el acceso a los archivos PHP)
De esta manera no tengo que accesar nuevamente a la base de datos cada vez que requiero uno de esos valores.

Tengo dos consultas:
  • Es recomendable guardar de esta manera esas variables de trabajo?
  • Puedo almacenar la clave en una
    Código PHP:
    $_SESSION[] 
    , para la opción cambiar clave de acceso y para validar el cambio que se ingrese la antigua y luego la nueva.
Gracias.
__________________
Todos somos iguales. NO! a la violencia de género.
  #2 (permalink)  
Antiguo 12/07/2018, 20:51
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 984
Antigüedad: 7 años, 6 meses
Puntos: 145
Respuesta: Consulta sobre uso de $_SESSION[]

Es recomendable guardar de esta manera esas variables de trabajo?

Generalmente es lo que se hace y si estan codificadas mucho mejor.


Puedo almacenar la clave en una?
Si, misma respuesta de la anterior... y si cambia la clave el usuario, pues vacias la variable session['clave'] y colocas la nueva, o mandas al usuario afuera del sistema despues del cambio exitoso y asi logea de nuevo, la variable tomara la nueva clave
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 13/07/2018, 13:57
Avatar de emilio_viguri  
Fecha de Ingreso: junio-2011
Ubicación: Mexico
Mensajes: 97
Antigüedad: 7 años, 3 meses
Puntos: 3
Respuesta: Consulta sobre uso de $_SESSION[]

Puedes almacenar todo en la misma variable y después sacarla con explode()

$_SESSION['usario'] = $PeriodoDeTrabajo,$Usuario,$NivelUsuario,$ValidarL ogin;
$checa = explode($_SESSION['usario']);

después las verificas

if($checa[2] == 'admin) echo 'es administrador';

__________________
Ing. Emilio Viguri de NEXCEN Visitamos en lo que podamos ayudarte.
  #4 (permalink)  
Antiguo 13/07/2018, 15:23
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 566
Antigüedad: 9 años, 5 meses
Puntos: 6
Pregunta Respuesta: Consulta sobre uso de $_SESSION[]

Cita:
Iniciado por petit89 Ver Mensaje
Es recomendable guardar de esta manera esas variables de trabajo?

Generalmente es lo que se hace y si estan codificadas mucho mejor.


Puedo almacenar la clave en una?
Si, misma respuesta de la anterior... y si cambia la clave el usuario, pues vacias la variable session['clave'] y colocas la nueva, o mandas al usuario afuera del sistema despues del cambio exitoso y asi logea de nuevo, la variable tomara la nueva clave
Al decir "codificadas" te refieres a usar session_encode ?
__________________
Todos somos iguales. NO! a la violencia de género.
  #5 (permalink)  
Antiguo 18/07/2018, 09:32
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 234
Antigüedad: 6 años, 2 meses
Puntos: 36
Respuesta: Consulta sobre uso de $_SESSION[]

Veras, para no hacerte tanto lío, puedes crear una clase PHP que almacene los datos y guardarlos codificados en json en la variable de sesión.

Código PHP:
Ver original
  1. $OBJ_USER = new StdClass();
  2. $OBJ_USER->name = "José";
  3. $OBJ_USER->work_period = "lo que sea";
  4. $OBJ_USER->level = 1;
  5. $OBJ_USER->login = true;
  6.  
  7. $_SESSION[ "usuario" ] = json_encode( $OBJ_USER );

Si lo quieres más seguro, además de en json, también puedes codificarlo en base64.

Para acceder a los datos tan solo usas json_decode(). Este método te será mucho más claro que hacerlo con un explore o tener múltiples variables de session
__________________
Diseño Web - Arisman Web



La zona horaria es GMT -6. Ahora son las 05:33.