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

Bibliothèques et frameworks PHP Discussion :

[Smarty] $_SESSION et Smarty


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut [Smarty] $_SESSION et Smarty
    Bonjour,

    J'utilise un objet en session avec php. Lorsque j'ai voulu y accéder dans le template de Smarty : "MonObjet is an invalid reference".

    Autrement dit Smarty ne trouve pas la référence de mon objet ?

    Je décide alors de tester l'accès à une autre variable session. Je prend tout bêtement l'id de session. Et là rien ne s'affiche depuis le template. J'ai fais un echo session_id(); résultat l'id de session s'affiche depuis mon script php. L'id de session existe bien mais Smarty ne veux pas l'afficher.

    J'ai donc un problème pour accéder aux variables session avec Smarty. Ce problème est récent car je n'avais aucun soucis avant.

    J'ai la dernière version stable de Smarty : version 2.6.26.

    Pourriez-vous me donner des pistes de recherches pour essayer de trouver la solution ?

    Amicalement,

    Torest.

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Salut,
    tu passe correctement la variable a ton template ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $smarty->assign('session_id', session_id());
    Si tu lui assigne pas la variable il ne la trouvera pas, ou alors tu doit lui dire que c'est du php (mais dans ce cas ca n'a plus trop d'intérêt d'utiliser des templates) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {php}
      echo session_id();
    {/php}
    Met nous ton code si ca ne vient pas de ca

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    Non le problème n'est pas d'assignée la variable mais bien d'accéder au variable de session de PHP. Comme indiquer dans la documentation de smarty :

    The request variables such as $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV and $_SESSION (see $request_vars_order and $request_use_auto_globals) can be accessed as demonstrated in the examples below:

    {* display the php session variable "id" ($_SESSION['id']) *}

    {$smarty.session.id}
    Hors "{$smarty.session.id}" n'affiche rien dans mon cas. Tout comme mon Objet n'est pas référencé.

  4. #4
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par torest Voir le message
    Non le problème n'est pas d'assignée la variable mais bien d'accéder au variable de session de PHP. Comme indiquer dans la documentation de smarty :



    Hors "{$smarty.session.id}" n'affiche rien dans mon cas. Tout comme mon Objet n'est pas référencé.
    Ah ok, je ne savait pas que l'on pouvait l'utiliser comme ca.
    Pour le probleme avec monObjet je ne voit pas, par contre pour le session_id je crois que j'ai compris pourquoi :

    Quand tu fait un echo session_id(), il te trouve l'ID de la session actuel, par contre lorsque depuis smarty tu essaye d'afficher {$smarty.session.id}, il cherche la valeur de $_SESSION['id'] qui n'a pas été définit, ce n'est pas la meme chose que le session_id().

    Essaye d'assigner une valeur en session qui ne soit pas un objet (par exemple $_SESSION['test'] = "Test", et essaye de l'afficher depuis smarty en faisant {$smarty.session.test})

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    Pour une variable non objet cela fonctionne.

    Apparemment j'ai le même soucis que pour ce poste : http://www.developpez.net/forums/d77...-objet-smarty/

    Je viens de faire un var_dump($_SESSION); depuis le template. Je retrouve bien toutes mes variables session. Pour les non objets je n'est pas de problème de référence. Par contre mon impossible d'accéder aux méthodes public de l'objet.

Discussions similaires

  1. [Smarty] organisation avec smarty
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/02/2006, 14h11
  2. [Smarty] problème compréhension sur les tableaux
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 09/02/2006, 16h44
  3. [MySQL] tableau de données via BDD et Smarty
    Par taly dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/01/2006, 16h00
  4. [Smarty] Inclusion de templates
    Par pendragon509 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/10/2005, 19h58

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