Foros del Web » Programando para Internet » PHP »

No me mantiene la cookie de una pagina a la otra

Estas en el tema de No me mantiene la cookie de una pagina a la otra en el foro de PHP en Foros del Web. Hola chicos... tengo un problema grande con un sistem de usuarios que estoy haciendo.. el tema es que cuando el usuario se loguea genera la ...
  #1 (permalink)  
Antiguo 08/02/2008, 18:53
 
Fecha de Ingreso: junio-2007
Ubicación: Argentina
Mensajes: 111
Antigüedad: 16 años, 10 meses
Puntos: 0
No me mantiene la cookie de una pagina a la otra

Hola chicos... tengo un problema grande con un sistem de usuarios que estoy haciendo.. el tema es que cuando el usuario se loguea genera la cookie (lo veo por medio de echo) pero cuando la llamo desde otro archivo php no la reconoce.... todo esto pasa online... localmente funcionaba bien... tengo en el archivo de conexion con la db el codigo session_start() para que me la levante cada vez que inicia alguna pagina pero tampoco funciona... les muestro los scripts

Archivo LOGIN.PHP (es el que recibe los datos de la form cuando se loguean)
Código PHP:
<?php
include_once ("mysql_config.php");
$username strtolower($_POST['nickname']);
$password strtolower($_POST['password']);
if (
$username == "")
{
//echo "My name is login.php and i'm not stupid!";
$msj_usuario "Debes ingresar un usuario.";
include (
"../index.php");
die();
}
if (
$password == "")
{
//echo "My name is login.php and i'm not stupid!";
$msj_usuario "Debes ingresar la clave.";
include (
"../index.php");
die();
}

/*// Comprobamos los datos
$link = mysql_connect($db[host],$db[username],$db[password]) or die("MySQL Say: Error connecting to the database.");
mysql_select_db($db[name],$link) or die("MySQL Say: Error selecting database.");*/
$query mysql_query("SELECT password FROM $db[prefix]_data WHERE nick = '$username'") or die(mysql_error());
$data mysql_fetch_array($query);
       if(
$data['password'] == $password)
       {
      
$_SESSION["user"] = $username;
      
// Crea la cookie y actualiza le nonce (md5 aleatorio para hacerlo más seguro.)
      
$nonce md5(uniqid(rand(), true));
      
setcookie("nonce"$noncetime() + 7776000);
$COOKIE $_COOKIE["nonce"];
echo 
"COOKIE EN LOGIN:".$COOKIE;
      
$query mysql_query("UPDATE $db[prefix]_data SET nonce = '$COOKIE' WHERE nick = '$username'")or die(mysql_error());
echo 
$_SESSION["user"];
     
$msj_usuario "Log ok.";
     
?>
<SCRIPT language="JavaScript">
history.back(top)
//window.location="../index.php";
</script>
<?php
      
//include ("../../users/".$username."/index.php");
   
} else{ 
     
// echo "fail";
      
}
   
$msj_usuario "Tu usuario no coincide con la contrase&ntildea.";
   include (
"../index.php");
?>

Archivo CHECK_USER.PHP (Checkea que el usuario este logueado)
Código PHP:
<?php
include_once ($index."mysql_config.php");
echo 
"COOKIE EN check_user: ".$_COOKIE['nonce']."<br>";
echo 
$_SESSION["user"];
function 
is_login() {
   
// Comprobamos si existe sesión
   
if(isset($_SESSION["user"])) return true;
   
//Comprobamos si hay cookie, si está bien y le asignamos una sesión
   
if(isset($_COOKIE["nonce"])) {
      
//$cookie = mysql_real_escape_string($_COOKIE["nonce"]);
$COOKIE mysql_real_escape_string($_COOKIE["nonce"]);
echo 
"COOKIE EN check_user2:".$COOKIE."<br>";
      
$query mysql_query("SELECT * FROM $db[prefix]_data WHERE nonce='$COOKIE'") or die(mysql_error());
      
$data mysql_fetch_array($query);
      if(isset(
$data['nick'])) {
         
$_SESSION["user"] = $data["nick"];
        return 
true;
       echo 
"OK";
         
$is_login="true";
         die;
      }
   }
     echo 
"MAL"."<br>";
echo 
"COOKIE NAME MAL: ".$_COOKIE ['nonce']."<br>";
echo 
"SESION NAME: ".$_SESSION["user"]."<br>";
   
$is_login="false";
   return 
false;
die;
}
if(
is_login()) {
   
// AquÃ* añadimos cualquier contenido que queramos que vean los usuarios registrados
   //echo "Hola <strong>".$_SESSION["user"]."</strong>, ya estás dentro";
   //echo "<a href='../db/logout.php'>Desconectar Â»</a>";
$is_login=="true";
echo 
"login OK";
}else{
 
$is_login !="true";
 echo 
"mal login";
  
}
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 15:37.