Foros del Web » Programando para Internet » PHP »

Problema con Cookies

Estas en el tema de Problema con Cookies en el foro de PHP en Foros del Web. Buenas chicos/as, tengo un problema con las cookies y no soy capaz de ver q le pasa... a ver, cuando te logueas te da la ...
  #1 (permalink)  
Antiguo 01/06/2005, 06:21
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 11 meses
Puntos: 0
Problema con Cookies

Buenas chicos/as, tengo un problema con las cookies y no soy capaz de ver q le pasa...

a ver, cuando te logueas te da la opcion de "RECORDARTE", y esto lo q hace es crearte la cookie.
Código PHP:
define ('MUCHO',987654321);
if (
$_POST["recuerdame"]) 
{
setcookie("SpynCMS",$SESSION,time()+3600*MUCHO);

El problema es q cuando entro a la pagina, no me recuerda, osea, q no me encuentra la cookie, o no se q le pasa....

Este es el codigo q se encarga de comprobar la cookie cuando entras.
Código PHP:
//Comprobamos si existe la cookie
if (isset($_COOKIE["SpynCMS"]))
{
$_SESSION["iduser"]=GetUserID($_COOKIE["SpynCMS"]);
$_SESSION['lvl']=DevValUser($_SESSION['iduser'],"admin");

Le veis algun fallo¿?

Gracias.
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #2 (permalink)  
Antiguo 01/06/2005, 07:07
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
pregunta tonta viste si te crea la cookie????


saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #3 (permalink)  
Antiguo 01/06/2005, 07:10
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 11 meses
Puntos: 0
Como puedo var si la ha creado¿? Uso Firefox
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #4 (permalink)  
Antiguo 01/06/2005, 07:21
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
bendito firefox, para firefox entra a herramientas>>preferencias>>privacidad>>cookies>>v er

y deberia mostrarte la de tu pagina con tus datos dentro

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #5 (permalink)  
Antiguo 01/06/2005, 07:23
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 21 años, 4 meses
Puntos: 1
Hola.

Para que salgas de dudas, usa el siguiente código:

Código PHP:
if(isset($_COOKIE["iduser"]))
echo 
"si existe \$_COOKIE['iduser'] y es igual a {$_COOKIE['iduser']}"
Si no te imprime nada, es porque no se inició la cookie.

Si eso sucede, asegúrate de que exista la variable $SESSION que usas con la función set_cookie().

Y en caso de que si te imprima el mensaje de que si existe la cookie, pero que no te funcione el código que tu hiciste para comprobar la cookie........ El error está en alguna de las dos funciones que usas.

Espero haberte ayudado.

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #6 (permalink)  
Antiguo 01/06/2005, 09:05
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 11 meses
Puntos: 0
Podria ser q el servidor automaticamente usara una cookie? Es q he mirado a ver si la encuentro con el firefox (como me dijo maralbust) y he encontrado q la cookie se llama PHPSESSID....

Y evidentemente no es la mia... Ademas, no uso esa variable para nada..
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #7 (permalink)  
Antiguo 01/06/2005, 09:14
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
provaste con lo que dijo gustavoang???
provaste en iexplorer o netscape???
podrias dar todo el codigo para cachurearlo

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #8 (permalink)  
Antiguo 01/06/2005, 10:13
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 11 meses
Puntos: 0
Si perdon, si q he provado lo que me comento gustavoang, y nada no muestra nada, es q no me crea la cookie como SpynCMS, me la crea como PHPSESSID.

Por eso me preguntaba si es cosa del server o de mi codigo.
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #9 (permalink)  
Antiguo 01/06/2005, 10:17
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
por eso da una url donde ver el codigo o postealo para ver que paso????


saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #10 (permalink)  
Antiguo 01/06/2005, 10:26
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
Código PHP:
 define ('MUCHO',987654321);
if (
$_POST["recuerdame"])
{
setcookie("SpynCMS",$SESSION,time()+3600*MUCHO);

tienes eso cierto, probe tu codigo, dime donde defines la variable $SESSION por que la he quitado y que funciona de maravillas, o sea seria asi

Código PHP:
 define ('MUCHO',987654321);
if (
$_POST["recuerdame"])
{
setcookie("SpynCMS",time()+3600*MUCHO);

__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #11 (permalink)  
Antiguo 01/06/2005, 11:16
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 11 meses
Puntos: 0
$SESSION es una variable q contiene la id de usuario y un md5 del level del mismo.

He probado a quitarlo y nada, sigue fallando, creo q debe de ser cosa del server.
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #12 (permalink)  
Antiguo 01/06/2005, 12:08
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 21 años, 4 meses
Puntos: 1
No, yo no creo que sea el server.

Te sugiero que hagas un archivo PHP nuevo y sólo escribas el siguiente código:
Código PHP:
 <?php
$SESSION
="esto es una cadena en md5";

$combrobar_inicio_de_cookie=@set_cookie("SpynCMS",$SESSION,time()+3600*987654321);

if(
$combrobar_inicio_de_cookie){
    echo 
"Spyn_ET, las cookies se generan sin ningún problema.";
}else{
    if(isset(
$_GET["intento"])){
echo 
"Spyn, ésta es la {$_GET['intento']} vez que intento crear la cookie, pero no logro hacerlo.<br><a href=\"{$_SERVER['PHP_SELF']}?intento=".++$_GET["intento"]."\">Intentarlo de nuevo!</a>";
    }else{
        echo 
"<a href=\"{$_SERVER['PHP_SELF']}?intento=2\">Voy a crear la cookie para Spyn_ET</a>";
    }
}
?>
(Acabo de escribir ese código y no lo he probado en el servidor, pero tiene que funcionar)

La misma página te dirá si todo salió bien.

Si la página te dice que todo salió bien... Entonces debes revisar tu variable $SESSION. Tal vez no exite y es por eso que la función set_cookie() no procede.

Cualquier cosa nos escribes para saber qué sucedió.

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #13 (permalink)  
Antiguo 02/06/2005, 07:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por Spyn_ET
Si perdon, si q he provado lo que me comento gustavoang, y nada no muestra nada, es q no me crea la cookie como SpynCMS, me la crea como PHPSESSID.

Por eso me preguntaba si es cosa del server o de mi codigo.
PHPSESSID Es el nombre de la sesión que PHP le dá automáticamente si no defines un nombre de sesión própio .. también será el nombre de la cookie creada por tu sistema de sesiones ($_SESSION) si propagas el SID en cookies.

De hecho .. no tendrías por qué crear una nueva cookie para dicha funcionalidad .. sino aumentar el tiempo de duración de tus cookies para propagar el SID y de propagar el SID exclusivamente en cookies:

(php.ini .. ajustable también por ini_set() y otras funcoines como session_set_cookie_params())

session.use_only_cookies = ON
(para propagar el SID en cookies sólo)

session.cookie_lifetime = tiempo en segundos de duración de tus cookies
(para ajustar la duración de dicha cookie)

session.name = ....
(para que le des el nombre que gustes a tus sesiones creadas)

Estás dos últimas versiones .. mejor usar las funciones:

session_set_cookie_params()
http://www.php.net/manual/en/functio...kie-params.php
y
session_name()
http://www.php.net/session_name

respectivamente ..

más info:
www.php.net/session

Te comento esta solución por qué según parece propagas el SID en cookies ya .. así que tu "cliente" ha de aceptarlas ya de por sí .. No vale la pena crear otra cookie y hacer todo el trabajo que ya han hecho las funciones "nativas" de PHP y sesiones.

Otra cosa sería trabajar la propagación del SID en el URL (para usar sesiones en la aplicación) y sólo usar cookies para la funcionalidad de "recordarme" para futuros "login" en tu aplicación. Es decir .. si no permite cookies tu usuario, la aplicación funcionaría igual (por su uso de sesiones propagando el SID en el URL) .. pero no podría disfrutar de la opción "recordarme". Aunque la propagación del SID sólo por URL si bien puede presentar esas ventajas .. también tiene sus desventajas en cuanto a seguridad de las mismas.

Un saludo,
  #14 (permalink)  
Antiguo 02/06/2005, 11:58
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 11 meses
Puntos: 0
TEMA SOLUCIONADO!!!!!!!!

El problema era define ('MUCHO',987654321);

El define creaba un numero muy grande para el tiempo de la cookie, cambiando a 168 el define ha ido bien.

define ('MUCHO',168); (168 = 1semana).

Muchas gracias a todos!!!
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #15 (permalink)  
Antiguo 03/06/2005, 07:26
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 21 años, 4 meses
Puntos: 1
Cita:
Iniciado por Spyn_ET
TEMA SOLUCIONADO!!!!!!!!

El problema era define ('MUCHO',987654321);

El define creaba un numero muy grande para el tiempo de la cookie, cambiando a 168 el define ha ido bien.

define ('MUCHO',168); (168 = 1semana).

Muchas gracias a todos!!!
Hola.

Las cookies de mi sitio tienen un tiempo de duración de 3 meses y no tengo ningún problema.

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #16 (permalink)  
Antiguo 03/06/2005, 07:44
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 11 meses
Puntos: 0
supongo q si pongo 3 meses tb debiria ir, pero es q habia puesto.

987654321*3600 = 148148148150 dias = 405885337,39726027397260273972603 años :D

Es q soy un bestia :D

Un saludo y perdonar.
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
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 12:53.