Foros del Web » Programando para Internet » PHP »

Sesiones php

Estas en el tema de Sesiones php en el foro de PHP en Foros del Web. Hola a todos, Estoy diseñando una aplicación a la que hay que acceder mediante un loggin. Hasta ahí todo bien. Lo que quiero controlar es ...
  #1 (permalink)  
Antiguo 29/09/2014, 10:05
 
Fecha de Ingreso: noviembre-2004
Ubicación: ELche
Mensajes: 153
Antigüedad: 20 años
Puntos: 0
Exclamación Sesiones php

Hola a todos,

Estoy diseñando una aplicación a la que hay que acceder mediante un loggin. Hasta ahí todo bien.

Lo que quiero controlar es que si alguien hace el log, en el que se inicia una variable de session id_user_conected, y luego desde otra pesaña del navegador intentara hacer un log con otro usuario diferente no le dejara.

Lo que ocurre es que intento comprobar si la variable existe, y si lo hago desde otra pestaña del navegador me dice que no existe utilizando isset, pero sin embargo me cambia la variable de session al nuevo usuario registrado.
session_start();
//comprobamos si la sesión existe
if(isset($_SESSION['id_user_conected']))
{
if ($_SESSION['id_user_conected']!=$usuario)
{
//si la session ya esta iniciada con otro usuario lanzamos un mensaje de error de log
header("Location: index.php?error=4");
}else {
$_SESSION['id_user_conected'] = $usuario;
// acceso a la aplicacion
}
}


las variables de sesión no se guardan de forma global? es decir, el acceso desde cualquier pestaña del navegador, siempre que no sea otra ventana.


Gracias

Un saludo
  #2 (permalink)  
Antiguo 29/09/2014, 11:00
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Sesiones php

creo que para este caso es mejor que almacenes el id en una cookie, no es que dejes de trabajar con sesiones (las sesiones se hicieron para eso para manejar la sesión del user), sino que para el caso como tal de comparar el id es mejor que uses la cookie ya que la misma se almacena en el navegador como tal, prueba y nos comentas
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 29/09/2014, 12:26
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 10 años, 2 meses
Puntos: 6
Respuesta: Sesiones php

Saludos! intenta a darle un nombre a tu sesion antes de iniciarla

mas o menos asi:
Código PHP:
Ver original
  1. session_name("mi_sesion");

Haz esto en todos los lugares donde inicias las sesiones con session_start(),

prueba y nos comentas.
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).
  #4 (permalink)  
Antiguo 30/09/2014, 20:23
 
Fecha de Ingreso: noviembre-2004
Ubicación: ELche
Mensajes: 153
Antigüedad: 20 años
Puntos: 0
Exclamación Respuesta: Sesiones php

Muchas gracias a ambos,

He probado con las dos formas, con nombrar la sesion y con las cookies.

Solo funciona la de las cookies de la manera que necesito.

Lo que me plantea una duda. ¿Al guardar el id del usuario en las cookies, así como algunos datos mas, no estaremos creando una vulnerabilidad ya que esos datos pueden ser vistos?

El certificado ssl solucionaria este problema, ya que en uno de los parametros de setcookie es el de asignar el modo seguro.

Muchas gracias de antemano.

Un saludo
  #5 (permalink)  
Antiguo 01/10/2014, 20:09
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Sesiones php

es que en teoría no deberías de guardar toda la información en cookies ya que están en el cliente (navegador), simplemente guarda en cookies lo que necesitas para que no te inicien session con otra cuenta, aunque viendolo desde otro punto de vista, si yo abro otra pestaña la session debería de quedarte en el navegador y no debería dejarte acceder al login
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 02/10/2014, 06:31
 
Fecha de Ingreso: julio-2013
Mensajes: 87
Antigüedad: 11 años, 4 meses
Puntos: 9
Respuesta: Sesiones php

Hola, yo trabajo con sesiones y no tengo ningún problema de que me abran varias pestañas. De hecho lo usamos habitualmente para tener varias pestañas y poder ver más cómodamente varias partes de la aplicación web. Lo que sí que hacemos es no mostrar la página de login si ya tenemos un usuario logado.

Código PHP:
Ver original
  1. if (!session_start()){
  2.     echo 'Error en la sesión.';
  3.     exit();
  4. }
  5.  
  6. if(isset($_SESSION['id_user_conected'])){
  7.     header('Location: main.php');
  8.     exit();
  9. }

Este código lo podrías tener en la página login.php y si está conectado ya un usuario en la sesión te enviaría a una página principal que tengas, en este caso le he llamado main.php.

Espero que te sirva.

Saludos.

Etiquetas: sesiones, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:19.