Foros del Web » Programando para Internet » PHP »

Propagacion de sesiones

Estas en el tema de Propagacion de sesiones en el foro de PHP en Foros del Web. Buenas a todos. Hace poco postee sobre un problema con las sesiones, y al final consegui hacerlo funcionar, pero en local. La cosa esque en ...
  #1 (permalink)  
Antiguo 13/06/2012, 03:44
 
Fecha de Ingreso: mayo-2012
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 1
Propagacion de sesiones

Buenas a todos.

Hace poco postee sobre un problema con las sesiones, y al final consegui hacerlo funcionar, pero en local.

La cosa esque en local me funciona perfectamente, y en el servidor donde debe de alojarse (propio de mi empresa) no. Por lo tanto, supongo que sera fallo del php.ini, pero nose de que parametro ni nada, os lo comento a ver si sabeis de que puede ser.

Tengo el archivo validarLogin, en el que si el login es correcto hago esto:
Código:
session_cache_limiter();
session_start();

// Para que al cerrar la ventana se termine la sesion
session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0);
					
$_SESSION['logeado'] = "si";
$_SESSION['paletta'] = $reg['paletta'];
					
//// Comprobamos si hay otro usuario conectado en la BD con los mismos parametros, y si es asi eliminamos su sesion

$sesiones = mysql_query("Select * from sesiones where paletta = ".$reg['paletta']) or die("No es posible consultar la tabla en este momento");
					
// Sesion actual
$id = session_id(); 
$paletta = $reg['paletta']; 
					
// Significa que ya hay un usuario con las mismas credenciales
if(mysql_num_rows($sesiones)>0){

mysql_query("UPDATE sesiones SET id_sesion='$id' WHERE paletta=$paletta",$con) or die(mysql_error());
						
}else{
						
mysql_query("INSERT INTO sesiones VALUES($paletta,'$id')",$con) or die(mysql_error());					
					}
header("Location: asta.php");
En definitiva, inicio la sesion y le asigno dos variables y guardo en la bd un registro con su paleta y el id de su sesion ( Si ya existia la actualizo para que el que estaba con esas mismas credenciales lo expulse ) y voy a asta.php

En este asta.php, hago un requiere a un archivo de seguridad con lo siguiente:
Código:
session_cache_limiter();
// Inicio la sesión
session_start();
// Para que al cerrar la ventana se termine la sesion
session_set_cookie_params(0, "/", $_SERVER["HTTP_HOST"], 0); 

// Comprobamos que el usuario esta logeado
if ($_SESSION["logeado"] != "si") {
    //si no existe, envio a la página de autentificacion
    header("Location: index.php?error=3");
    //ademas salgo de este script
    exit();
}else{
	
	include('conexion.php');
	
	$paletta = $_SESSION['paletta'];
	$id = session_id();
	
	$sesion = mysql_query("Select * from sesiones where paletta = $paletta && id_sesion = '$id'",$con) or die ("No se pudo consultar la tabla sesiones");
	
	// Si no existe la sesion en la tabla
	if(mysql_num_rows($sesion)==0){
		header("Location: index.php?error=4");
		exit();
	}
}
Y aqui es donde me da el error. Me entra en el header con el error=4 siempre, debido a que el id de esta sesion, no coincide con el que he iniciado en validarLogin, almacenado en la BD. No entiendo tampoco, porque si yo le he metido a la sesion de validarLogin un atributo login = "si", me pilla la variable en el seguridad.php siendo las id de la sesiones distintas.... :|

La cosa esque en local me funciona perfectamente, el id de la sesion siempre es el mismo, se propaga, pero en el servidor no lo hace, son id de sesiones distintos por lo tanto nunca entra.

Alguna idea de a que es debido?? Saludos y gracias :)

Última edición por Julio1421; 13/06/2012 a las 03:55

Etiquetas: mysql, propagacion, registro, sesiones, sql, tabla, variables, usuarios
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




La zona horaria es GMT -6. Ahora son las 07:31.