Foros del Web » Programando para Internet » PHP »

setcookie() no guarda al cerrar navegador.

Estas en el tema de setcookie() no guarda al cerrar navegador. en el foro de PHP en Foros del Web. Muy buenas gente. Estoy tratando de setear cookies y funciona pero solo hasta que cierro en navegador. Al revisar las cookies guardadas en el navegador ...
  #1 (permalink)  
Antiguo 14/08/2016, 10:47
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 9 meses
Puntos: 0
setcookie() no guarda al cerrar navegador.

Muy buenas gente. Estoy tratando de setear cookies y funciona pero solo hasta que cierro en navegador. Al revisar las cookies guardadas en el navegador veo que dice

PHPSESSID y Luego en caduca "Al finalizar session del navegador".

El comando que uso es este y lo simplifique lo mas que pude pero sin exito.

setcookie('user', 'value' ,time() + 996000, '/', 'ejemplo.com');

setcookie('user', 'value' ,time() + 996000, '/');

setcookie('user', 'value' ,time() + 996000);

setcookie('user', 'value' , 996000);

setcookie('user', 'value' , '99600');

Todo esto sin exito, solo la guarda hasta que cierro el navegador, probe con Chrome y Opera.

Desde ya muchas gracias!
  #2 (permalink)  
Antiguo 14/08/2016, 11:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: setcookie() no guarda al cerrar navegador.

Las cookies funcionan de la siguiente forma:

1. Asignas una cookie con setcookie()
2. Recargas la pagina
3. Ahí está el valor

Si antes del punto (1) imprimes algo, o haces algo que finalice la petición, algo que impida enviar más cabeceras, entonces no funcionará jamás.

Revisa bien cómo realizas tus procesos, ahí puede estar el verdadero problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/08/2016, 14:54
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 5 meses
Puntos: 123
Respuesta: setcookie() no guarda al cerrar navegador.

Deverias de echar un vistazo a la documentacion cookie_lifetime

Cita:
session.cookie_lifetime integer
session.cookie_lifetime especifica el tiempo de vida en segundos de la cookie que es enviada al navegador. El valor 0 significa "hasta que el navegador se cierre". Por defecto es 0. Véase también session_get_cookie_params() y session_set_cookie_params().

Nota:

La marca de tiempo de caducidad se establece relativa a la hora del servidor, la cúal no es necesariamente la misma que la hora del navegador del cliente.
Teniendo esto en cuenta simplemente establece el tiempo de la sesion con

Código PHP:
ini_set('session.cookie_lifetime'120); 
Cambiando 120 por el tiempo deseado en segundos.

PHPSESSID es una cookie generada por PHP para el segimiento de la sesion. Por ejemplo cuando utilizas session_start(), PHP utilizara la cookie PHPSESSID para guardar un identificador unico de la sesion y asi poder recuperar las variables $_SESSION en cada peticion.
__________________
Unset($vida['malRollo']);
  #4 (permalink)  
Antiguo 15/08/2016, 08:17
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: setcookie() no guarda al cerrar navegador.

En conclusión las cookies de PHP son similares a $_session.

Intente usar el comando ini_set('session.cookie_lifetime', 120); pero no me funciona, sigue borrándose al cerrar el navegador.
Con este comando no estoy modificando también todas las paginas? Tengo el hosting en ipage.com, quizás tenga que contactarme con ellos para que me permita modificar el archivo que contiene cookie_lifetime


Existe una forma de crear una cookie que sobreviva al cerrar el navegador?

Veo paginas como algunos correos que me crean archivos con cookies pero ya no dicen
PHPSESSID.

Gracias por las excelentes explicaciones.

PD: Les explico un poco lo que tengo, en el index dos input (user and pass), esto lo envio a un check.php por ajax. Aquí verifica que todo este bien y si lo esta crea la cookie para no tener que volver a iniciar sesión a cada instante.
  #5 (permalink)  
Antiguo 15/08/2016, 09:58
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 13 años, 11 meses
Puntos: 468
Respuesta: setcookie() no guarda al cerrar navegador.

Las cookies se almacenan en tu ordenador, al cerrar el navegador estas no desaparecen ni se eliminan, a no ser que lo hagas manualmente, los datos que se pierden al cerrar el navegador son los datos de las sesiones!!
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #6 (permalink)  
Antiguo 15/08/2016, 12:23
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: setcookie() no guarda al cerrar navegador.

Algo mas esta pasando, cree un archivo vacio en la raiz del sitio.
a.php sin nada y pegue este codigo.

Código:
<!DOCTYPE html>
<?php
ini_set('session.cookie_lifetime', 120);  
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
El resultado es "Cookie named 'user' is not set!"

Se me acabaron las ideas :(
  #7 (permalink)  
Antiguo 15/08/2016, 13:50
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: setcookie() no guarda al cerrar navegador.

Gente me comunique con el soporte del hosting y al parecer habia un error. esta fue su respuesta y quedo funcionando.

"I have enabled 'output buffering' setting in php.ini file and resolved the error."

Desde ya muchas gracias a todos por la ayuda!

Etiquetas: cerrar
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 01:23.