Question

Ma session semble être valable uniquement dans la fenêtre en cours / onglet. En outre, il semble délai d'attente rapidement. Voici comment je tente actuellement de le faire:

Ceci est mon contrôleur de connexion:

$adapter = $this->getAuthAdapter($data);
$auth    = Zend_Auth::getInstance();
$result  = $auth->authenticate($adapter);

if (!$result->isValid()) {
    $this->view->err = "Invalid username or password.<br/>Please try again.";
    return $this->render('index'); // re-render the login form
}

Zend_Session::rememberMe(60*60*24*7*4);

Et cela est dans mon bootstrap:

Zend_Session::start();

Je suis relativement nouveau à certaines de ces choses, donc garder avec moi! Toute aide serait grandement appréciée.

Était-ce utile?

La solution

Voici ce qui se passait. Ce site a été sur un serveur partage d'un dossier de sessions avec un autre site sur le serveur. Même si j'augmenté la vie de session avec ini_set, mes sessions étaient encore supprimées par l'autre application.

Pour résoudre cela, je simplement mis session.save_path à un nouveau dossier. Problème résolu!

Autres conseils

Je veux juste ajouter que vous modifiez le session.save_path dans le .htaccess avec la ligne de suivi pour le faire fonctionner. J'ai vu la réponse pensé je l'ai changé dans le .ini, mais il est dans le .htaccess.

Par exemple:

php_value session.save_path /home/kaos/data/sessions/

En regardant à travers la source de Zend_Session, la méthode appelle rememberUntil () qui appelle la méthode construite en php session_set_cookie_params (rememberMe ())

Vous pouvez vérifier vos valeurs php.ini pour session.cookie_lifetime . Si ce n'est pas 0, Zend_Session :: rememberMe () serait inutile à moins que la valeur est inférieure à session.cookie_lifetime . Dans ce cas, vous voulez le mettre à 0 dans php.ini soit ou dans votre application à l'aide ini_set () comme indiqué dans le premier commentaire sur le homme session.cookie_lifetime .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top