Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/08/2004, 15:31
Avatar de Gryphus
Gryphus
 
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 23 años, 8 meses
Puntos: 0
Problema con Logout

Bueno vereis, puse en mi web un sistema de registro de usuarios que vi en una web y todo iba bien hasta que intento deslogearme desde un archivo que esta en /carpeta/archivo.php
En la raiz tengo los mismos archivos y me funcionan. Los archivos que uso son:
ingresar.php
Código PHP:
<?php 

$db 
= mysql_connect("SERVIDOR","USUARIO","CONTRASEÑA");
mysql_select_db("BASE_DATOS", $db);

function 
quitar($mensaje) 
{ 
$mensaje = str_replace("<","&lt;",$mensaje); 
$mensaje = str_replace(">","&gt;",$mensaje); 
$mensaje = str_replace("\'","'",$mensaje); 
$mensaje = str_replace('\"',"&quot;",$mensaje); 
$mensaje = str_replace("\\\\","&#92",$mensaje); 
return 
$mensaje; 
} 

if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["password"]) != "") 
{ 
$nickN = quitar($HTTP_POST_VARS["nick"]); 
$passN = quitar($HTTP_POST_VARS["password"]); 

$result = mysql_query("SELECT password FROM usuarios WHERE nick='$nickN'"); 
if(
$row = mysql_fetch_array($result)) 
{ 
if(
$row["password"] == $passN) 
{ 
//90 dias dura la cookie 
setcookie("usNick",$nickN,time()+7776000); 
setcookie("usPass",$passN,time()+7776000); 
?> <?php
echo "<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"".getenv('HTTP_REFERER')."\";</SCRIPT>";  
?><? 
} 
else 
{ 
echo 
"Password incorrecto <SCRIPT LANGUAGE=\"javascript\">window.location.href = \"".getenv('HTTP_REFERER')."\";</SCRIPT>";  
}
}
else 
{ 
echo 
"Usuario no existente en la base de datos <SCRIPT LANGUAGE=\"javascript\">window.location.href = \"".getenv('HTTP_REFERER')."\";</SCRIPT>";   
} 
mysql_free_result($result); 
} 
else 
{ 
echo 
"Debe especificar un nick y password <SCRIPT LANGUAGE=\"javascript\">window.location.href = \"".getenv('HTTP_REFERER')."\";</SCRIPT>";    
} 
mysql_close(); 
?>
Este es para ingresar en la sesion
login.php
Código PHP:
<?php 
$loginCorrecto 
= false; 
$idUsuarioL; 
$nickUsuarioL; 
$emailUsuarioL; 
$nombreUsuarioL;
$rangoUsuarioL; 
$avatarUsuarioL;
$expUsuarioL;
$nivelUsuarioL;
$guiles;
$paisUsuarioL;
$diaUsuarioL;
$mesUsuarioL;
$anyoUsuarioL;
$ocupacionUsuarioL;
$firmaUsuarioL;
$fechaUsuarioL;
$sexoUsuarioL;
$categoriaUsuarioL;
$jobUsuarioL;
$namejobUsuarioL;

if(isset(
$HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"])) 
{ 
$result = mysql_query("SELECT * FROM usuarios WHERE nick='".$HTTP_COOKIE_VARS["usNick"]."' AND password='".$HTTP_COOKIE_VARS["usPass"]."'"); 

if(
$row = mysql_fetch_array($result)) 
{ 
setcookie("usNick",$HTTP_COOKIE_VARS["usNick"],time()+7776000); 
setcookie("usPass",$HTTP_COOKIE_VARS["usPass"],time()+7776000); 
$loginCorrecto = true; 
$idUsuarioL = $row["id"]; 
$nickUsuarioL = $row["nick"]; 
$emailUsuarioL = $row["email"]; 
$nombreUsuarioL = $row["nombre"]; 
$passwordUsuarioL = $row["password"]; 
$rangoUsuarioL = $row["rango"];
$avatarUsuarioL = $row["avatar"];
$expUsuarioL = $row["exp"];
$nivelUsuarioL = $row["nivel"];
$guiles = $row["guiles"];
$paisUsuarioL = $row["pais"];
$diaUsuarioL = $row["dia"];
$mesUsuarioL = $row["mes"];
$anyoUsuarioL = $row["anyo"];
$ocupacionUsuarioL = $row["ocupacion"];
$firmaUsuarioL = $row["firma"];
$fechaUsuarioL = $row["fecha"];
$sexoUsuarioL = $row["sexo"];
$categoriaUsuarioL = $row["categoria"];
$jobUsuarioL = $row["job"];
$namejobUsuarioL = $row["name_job"];
} 
else 
{ 
//Destruimos las cookies. 
setcookie("usNick","x",time()-3600); 
setcookie("usPass","x",time()-3600); 
} 
mysql_free_result($result); 
} 
?>
Este es para definir los valores de la sesion (nombre de usuario, password...)
deslogeado.php
Código PHP:
<? 
setcookie
("usNick","x",time()-3600); 
setcookie("usPass","x",time()-3600); 
echo 
"<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"".getenv('HTTP_REFERER')."\";</SCRIPT>"; 
?>
Y este ultimo es para hacer logout.
Estos archivos estan en la raiz de la web y todos funcionan correctamente, pero en carpeta/archivo.php tengo los mismos archivos pero no me funciona el logout, de hecho, si me identifico en carpeta/archivo.php y luego voy a la carpeta raiz y hago logout se deslogea en la raiz pero cuando vuelvo a entrar en carpeta/archivo.php esta la sesion abierta, o sea, en carpeta/archivo.php no se puede deslogear. Espero que me podais ayudar, gracias de antemano.
Saludos

Última edición por Gryphus; 06/08/2004 a las 15:33