2010-11-13 8 views
1

Comment puis-je rendre le cookie session.cookie_path uniquement disponible pour le module "/admin/"?Comment limiter un cookie à "/ admin" sur mon domaine?

Code de Zend Framework:

// Se Login? 
public static function isLoggedIn() { 
    $namespace = new Zend_Session_Namespace('Zend_Auth'); 
    $namespace->setExpirationSeconds(60*5); //5 Minutos dura una session 

    $namespace->cookie_path = '/admin/' 

    return Zend_Auth::getInstance()->hasIdentity(); 
} 

Je ne peux pas PHPSESSION d'avoir le chemin défini sur '/admin/'. PHPSESSION a toujours le chemin défini sur '/' dans le cookie. ? ;-(

Répondre

2

typeoneerror est presque là. Vous allez voulez utiliser le paramètre "cookie_path" et non "cookie_domain"

Exemple:

Zend_Session::setOptions(array(
     'cookie_lifetime' => 0, 
     'cookie_path'  => "/admin", 
     'cookie_domain' => ".test.com", 
     'cookie_secure' => false, 
     'cookie_httponly' => true 
    )); 
1

Si je vous comprends bien, vous voulez limiter le cookie «/admin » sur le domaine dont vous avez besoin pour passer cookie_path comme des options à Zend_Session, et non son partenaire _Namespace:

$settings = array("cookie_domain" => "/admin"); 
Zend_Session::setOptions($settings); 

vous pouvez également démarrer une session avec un objet paramètres:

Zend_Session::start($settings); 

vous pouvez également enregistrer vos paramètres dans un fichier de configuration:

$config = new Zend_Config_Ini('config.ini', 'development'); 
Zend_Session::setOptions($config->toArray()); 
Questions connexes