Problema con cookies al hacer un login

Hola expertos.
Estoy intentando hacer en mi web un registro de usuarios, para ello utilizo los siguientes códigos php:
1- Registrar.php: se encarga del registro de usuarios (m funciona
2- Ingresar.php: se encarga del ingreso de usuarios m funciona
3- login.php: se encarga de comprobar que existen las cookies y que son iguales al nick y password de la base de datos.
Es aquí donde tengo el problema. Al ejecutarse la siguiente linea de código
----------------------------------------
if(isset($HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"]))
----------------------------------------
m sale que no es cierto y se sale del login sin poner la variable boolanea que luego m va a permitir dar permiso de entrada a 1(true).
Es como si las cookies no existieran, pero he comprobado que si, que se crean. Dentro de ingresar.php, las creo así
----------------------------------------
setcookie("usNick",$nickN,time()+7776000);
setcookie("usPass",$passN,time()+7776000);
----------------------------------------
Tampoco es m cumple la condición en login.php
----------------------------------------
$result = mysql_query("SELECT * FROM usuarios WHERE nick='".$HTTP_COOKIE_VARS["usNick"]."' AND password='".$HTTP_COOKIE_VARS["usPass"]."'");
if($row = mysql_fetch_array($result))
----------------------------------------
Cuando debería cumplirse.
Si alguien sabe que estoy haciendo mal, o tiene alguna pista de por donde pueden ir los tiros es lo agradeceré mucho.
Un saludo y muchas gracias
*****************CHEM*******************
Respuesta
1
Primero, debes verificar la version de PHP que tienes, versiones posteriores a la 4.10, puedes usar la forma autoglobal $_COOKIE[]; recuerda también que las cookies sufren la misma restricción de las sesiones y de las cabeceras, deben ser leídas y cargadas ANTES de ejecutar cualquier operación de usuario (como enviar contenido, una etiqueta HTML o un echo); por lo que obtendrás vacío si las cabeceras ya fueron enviadas...
Te recomiendo que inicies una sesión, con session_start, inicies un buffer de data de salida con ob_start y que cuando hayas leído las cookies..
$up = $_COOKIE["usPass"];
Liberas el envío de las headers con ob_flush, así te aseguras que las headers no hay sido enviadas antes de la lectura de las cookies...
Si tu problema persiste, entonces respóndeme y analizaremos tu código a ver que pasa, ¿ok?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas