web-dev-qa-db-fra.com

Activation des sessions dans WordPress 3.0

J'utilise un wfcart sur mon site WordPress, mais pour une raison quelconque, certaines pages WordPress abandonne la session. Je me demande s'il est possible d'activer des sessions dans WordPress 3?

4
user1327

Si vous devez activer manuellement la session globalement, utilisez ceci dans votre functions.php (j'ai inclus une ligne pour définir manuellement une variable de session à titre d'exemple, non requis):

add_action('init', 'session_manager');
function session_manager() {
    if (!session_id()) {
        session_start();
    }
    $_SESSION['foo'] = 'bar';
}

et si vous souhaitez effacer manuellement la session sur un événement (comme la déconnexion):

add_action('wp_logout', 'session_logout');
function session_logout() {
        session_destroy();
}
4
somatic

En complément de la réponse de Somatic, notez que les sessions peuvent vous empêcher de s’adapter en cas de mauvaise configuration.

En particulier, si votre site s'étend sur plusieurs serveurs, veillez à utiliser l'un des gestionnaires de sauvegarde Memcached intégrés à pecl, ou un gestionnaire de session basé sur SQL. Et si vous optez pour un gestionnaire SQL écrit en php, veillez à utiliser le verrouillage de ligne si votre application implique une Ajax quelconque.

Si vous ne le faites pas et si vous vous en tenez au gestionnaire de système de fichiers, vous risquez de perdre des sessions en fonction du serveur frappé par les utilisateurs finaux.

1
Denis de Bernardy