Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/08/2005, 01:53
Computer XTress
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Exclamación Interferencia entre SESSIONES !!!!

Hola a todos.

De antemano, agradesco a quienes me puedan ayudar.

Tengo un problema bastante grave, ya que si abro 2 ventanas de FIREFOX, e ingreso a mi sitio con 2 usuarios diferentes, noto que existen interferencias explicitas entre ambos. Estoy algo preocupado, ya que si bien esto puede ser un problema del firefox, local, que no me daria problemas en el sitio, tambien puede ser lo contrario.

(Al final del mensaje mis scripts de LOGIN y LOGOUT.)

El problema:
Caso 1: En la ventana "A" ingreso como usuario "PEDRO". En la ventana "B", ingreso a mi sitio, y ya aparesco logeado como "PEDRO" !!

Caso 2: En la ventana "B" hago LOGOUT, ya que encontre la session iniciada. Actualizo la ventana "B" y tambien estoy LOGOUT!!

Caso 3: En ventana "A" ingreso como "PEDRO". En ventana "B" intento ingresar con los datos de "JORGE", pero aparece logeado el usuario PEDRO y no JORGE!

y asi muchos casos mas...

Si sirve de algo, tengo configurado en el login.php:
session_set_cookie_params(0, "/");
(No se 100% que hace, solo lo tuve q usar por problemas con firefox)

Al logout hago:
session_unset();
session_destroy();


Espero me puedan ayudar, estoy algo preocupado ya q no tengo forma de probarlo desde varias pc en internet hace la prox. semana...


Gracias !!!!!!!!!!!!

/* LOGIN.PHP */

<?php
if(($user = $_POST['user']) != "" || ($password = $_POST['pass']) != "") {

include($_SERVER['DOCUMENT_ROOT'].'/include/bd.php');

$link = conectar_bd();
$sql = "select * from usuarios where user = '$user' and password = '$pass'";
$query = mysql_query($sql) or die('Imposible realizar consulta!');

if(mysql_num_rows($query) > 0) {
$data = mysql_fetch_array($query);
}

if ($data['user'] == $user && $data['password'] == $pass) {

if ($data['u_level'] < 1) {
echo 'Su cuenta ha sido bloqueada.<br>';
exit();
} else {
$sql = "SELECT * FROM usuarios WHERE user='$user' AND login_last < CURDATE()";
$query = mysql_query($sql) or die('Imposible realizar consulta!');
if(mysql_num_rows($query) > 0) {
$sql = "update usuarios set cmts='0' where user='$user'";
$query = mysql_query($sql) or die('Imposible realizar consulta!');
}

$fecha = date('Y-n-d');
$sql = "update usuarios set login_last='$fecha' where user='$user' and password='$pass'";
$query = mysql_query($sql) or die('Imposible realizar consulta!');

session_set_cookie_params(0, "/");
session_start();
$_SESSION['user'] = $user;
$back = $_SERVER['HTTP_REFERER'];
header("Location: $back");
}
} else {
echo 'Los datos ingresados son incorrectos.';
}



} else {
header('Location: /msg/loginfail1.html');
}


mysql_close($link);
?>



/* LOGOUT.PHP */

<?php
session_start();
if (! $_SESSION['user']) {
echo 'Imposible salir. No hay usuario ingresado.';
exit();
}

session_unset();
session_destroy();
$back = $_SERVER['HTTP_REFERER'];
header("Location: $back");

?>