IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Gestion des sessions sous wordpress


Sujet :

WordPress PHP

  1. #1
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut Gestion des sessions sous wordpress
    Bonjour

    J'utilise d'ordinaire ce système de gestion de session php sur des supports développés en dur (sites classiques ou applications web), et j'avouerai que c'est relativement simple à mettre en place, même pour des solutions complexes.

    A cet effet, la création d'une session session_start() et la déclaration des variables utiles ne pose pas de problèmes d'exploitation de celles-ci.

    Cependant et sous wp, ce n'est pas le cas.
    A vrai dire, je ne parviens pas à conserver mes variables actives d'une page à l'autre.
    Ce qui me semblait simple jusqu'à présent, devient un véritable casse-tête sous wp (?).

    Peut-être un conseil, voire un retour d'expérience de votre part serait le bienvenu.
    Merci à vous.

  2. #2
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Bonjour,

    Bon ! Pas trop de réactions.

    Donc, quelques précisions complémentaires, et à toute fin utile.
    Version en service : WordPress 3.0.3

    J'ai apporté les modifications suivantes dans le fichier wp-config.php afin
    d'initialiser un session_start.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!session_id()) {
         session_start();
    }
    Et enfin un simple test sur le blog :

    page-1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $test="Stroumphette";
    $_SESSION['test'] = $test;
    echo $_SESSION['test'];
    //...OK ! OK !
    ?>
    page-2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    echo $_SESSION['test'];
    // ...Pas OK ! Pas OK !
    ?>
    Je serais tenté d'affirmer que wp ne sait pas gérer les sessions php ?
    Ou alors, peut-être que certains aménagements dans les sources sont nécessaires.
    J'en sais trop rien.
    J'ai pris l'exemple le plus simple possible pour se rendre compte de cette lacune.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Salut,

    On peut transmettre les sessions sans problème sous WP. ex:
    wp-config.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!session_id()) {
         session_start();
     
    		 $_SESSION['test'] = 'test';
    }
    et dans le single.php du thème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $_SESSION['test']; ?>
    La page affiche bien "test".

    La question, c'est plutôt tes pages. Ce sont des pages WP ? des templates ?

    --
    Tsilefy

  4. #4
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Salut Tsilefy
    Et merci de t'interresser au sujet.

    Avant tout, je confirme, il s'agit bien de pages WP.

    Ensuite, et en modifiant le fichier comme cité, je n'obtiens aucun echo de cette variable de session ( test).

    C'est étrange, serait-ce lié à la version de wordpress utilisée ?
    Je ne pige pas trop, il y a quelque chose qui m'échappe vu que c'est simple à manipuler.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Ou le thème qui "intercepte" les sessions (WP lui-même ne semble pas utiliser les sessions) ?
    Essaie avec le thème par défaut?

  6. #6
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Ok !

    Je suis intervenu aussi sur le fichier wp-settings.

    Et en bridant la fonction suivante, la variable de session est enfin disponible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //wp_unregister_GLOBALS();
    Ce qui n'est pas en soi une sage décision en matière de sécurité, et c'est plus qu'une bidouille qu'autre chose.

    A defaut d'avoir une solution plus rationnelle.

    Pourrais-tu, stp, regarder de ton côté ce fichier wp-settings comment est déclarée cette ligne ?
    Car bizarrement, ta variable est disponible sans être intervenu sur ce fichier. (?)
    Pour ca aussi que je pensais que nous avions 2 versions différentes.
    Je t'en remercie pas avance.

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Ha!

    J'ai Register_globals à On sur mon php.ini pour des raisons de compatibilité avec des *très* vieux scripts, et je le désactive à la main ensuite.

    Je pense qu'on a trouvé le problème (désolé, site en prod donc je ne peux pas changer à On).

  8. #8
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    .... (désolé, site en prod donc je ne peux pas changer à On).
    Ok, et je le comprends parfaitement.
    C'était juste pour comparer.

    Pour l'instant, je vais laisser comme tel.
    En attendant php 6.
    Hum !
    Celà promet de joyeux weeks à ceux qui utilisent des CMS lorsque cette directive ne sera plus exploitable.

    Merci pour cet échange
    A +

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 18
    Par défaut idem
    Salut à tous,

    je vois que le sujet date d'il y a un moment déjà mais je me demandais si vous aviez une autre solution pour utiliser les sessions dans wordpress car moi, je n'y arrive pas. J'ai bien ajouté le session_start() dans wp-config.php et j'ai bien commenté wp_unregister_GLOBALS() mais ça ne fonctionne toujours pas?
    Une idée?
    Merci

  10. #10
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Salut

    Dans wp-settings, as-tu "bridé" ta ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //wp_unregister_GLOBALS();
    Personnellement et depuis, toutes mes variables de session sont exploitables.
    Ceci étant, je n'ai pas trouvé d'autre solution plus rationnelle.
    Du bricolage quoi.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 18
    Par défaut
    Citation Envoyé par alain31tl Voir le message
    Salut

    Dans wp-settings, as-tu "bridé" ta ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //wp_unregister_GLOBALS();
    Personnellement et depuis, toutes mes variables de session sont exploitables.
    Ceci étant, je n'ai pas trouvé d'autre solution plus rationnelle.
    Du bricolage quoi.
    Oui j'ai bien commenté cette ligne. J'ai même trouvé ailleurs une modification (article) à faire dans cette fonction pour éviter qu'elle 'tue' la variable $_SESSION mais ça ne change rien.

  12. #12
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Salut

    Je reviens sur ce sujet, et à toute fin utile pour ceux qui rencontreraient des problèmes comme jafar .

    La solution pour palier à mon premier souci était de brider la ligne suivante et du fichier wordpress wp-settings.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    wp_unregister_GLOBALS();
    //de cette façon :
    //wp_unregister_GLOBALS();
    Et comme je le disais, c'est du "bricolage", mais avec l'avantage de fonctionner.

    Suite à un changement de theme, j'ai rencontré ce nouveau probléme, voici comment je l'ai résolu :

    Fichier wordpress wp-config.php
    J'ai viré le session_start
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //if (!session_id()) {
         //session_start();
     //}
    Fichier wordpress wp-settings.php
    Remis la ligne suivante sans la brider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wp_unregister_GLOBALS();
    Et selon les cas, c'est dans le fichier functions.php du thème lui-même qu'il faut intervenir et en début de script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    if ( !session_id() )
    add_action( 'init', 'session_start' );
    C'est tout et c'est fonctionnel.
    En tout cas sur un thème proposé par Elegant thémes.
    Voilà...à toute fin utile.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des sessions sous Struts
    Par evan32 dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/09/2009, 17h41
  2. Gestion des sessions php sous debian
    Par blast078 dans le forum Administration système
    Réponses: 3
    Dernier message: 18/02/2008, 17h40
  3. Gestion des .log sous Oracle
    Par SANOORA dans le forum Administration
    Réponses: 10
    Dernier message: 08/11/2004, 09h29
  4. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 14h25
  5. Routines de gestion des ports sous Windows XP
    Par wiccanhelios dans le forum Windows
    Réponses: 2
    Dernier message: 14/11/2003, 08h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo