session_id en cookies

Whose

Preguntando a un amigo una solucion para que las sessions en PHP sigan guardadas despues de cerrar el navegador y abrirlo de nuevo me estuvo ayudando con este codigo pero no conseguimos hacerlo funcionar.

En el index.php tengo esto al principcio

<?php
session_start();
print_r($COOKIE);
if(isset($
COOKIE['sid'])) {
session_id($COOKIE['sid']);
print_r($
SESSION);
}
?>
Al loguearme me imprime lo siguiente:
Array ( [nuked_sess_id] => 3k1evktqzG5avkXejCly [sid] => 78fb9e76b28182777da823340043eec9 [nuked_user_id] => y3GXUrCtqjopU7wdmz4X [PHPSESSID] => 78fb9e76b28182777da823340043eec9 ) Array ( [adm_whus] => whose )

Hasta ahi bien, imprime la id de la session que guarde en la cookie pero al cerrar el navegador y abrirlo el array con la session se queda vacio, es decir que la pierde...

el codigo con el que me logueo es el siguiente:
$_SESSION['adm_whus'] = $nick;
setcookie('sid', session_id(),time()+7776000, '/');

Pues es es el problema, necesito que la cookie guarde la id de la session y que si cierro el navegador y lo abro de nuevo la session siga activa y no necesite loguearme de nuevo ¿Alguna solucion?
Si no uso las cookies para el login es porque son menos seguras (a mi parecer)

Thx.

Abreu

¿Te conectas al script directamente en tu localhost? A mi me dan muchos problemas las sesiones mientras la web esta en mi servidor local y eso que la configuracion del php.ini la tengo bien.

Whose

Sip, lo hago desde mi pc con php 4.3.9, lo instalo con appserv, las sesiones las registra porque me logueo perfectamente y manejo la administracion, voy a probarlo en el host a ver si funciona.

Nada, en el host tampoco va.

Abreu

¿Puede ser que al hacer session_start() cree una cookie de nombre "sid" con el valor de la nueva id de sesión? Esto reemplazaria la cookie que creaste en la sesion anterior...

Whose

No, la cookie la registro en otro archivo al logearme, creo que es normal que no funcione, me han ayudado en el irc-hispano y he sacado una solucion que aun no he probado pero debe ir.

Se trata de poner un campo en la base de datos con la ultima session, como son muchos numeros, no se va a repetir con otra, entoces cada vez que entre en la web se comprueba si la sesion esta iniciada, si es asi continua la carga, si no busca en la base de datos, comprueba que la cookie almacenada tenga la misma sesion que la de la base de datos y si coincide le registra la sesion con su nick. Es decir que en la base de datos se guardara la ultima sesion y cada vez que cierre el navegador y vuelva a entrar esa base de datos se actualizara con la sesion actual, enlazando todo.

Whose

Weno he hecho esto pero sigue sin ir, seguire intentandolo, si quereis echarle un ojo por si le veis el error aqui os dejo el codigo:
http://www.pastebin.com/127821

Usuarios habituales

  • Whose
  • Abreu