Problème variable de session
Réduire
X
-
Envoyé par ossepove Voir le messageBonjour à tous,
Je suis débutant sur Joomla et, dans le cadre du développement d'un composant, je rencontre un souci avec l'utilisation de la variable de session.
Voici le code figurant dans la page de base du composant
Code PHP:$session =& JFactory::getSession();
if(isset($session))
{
echo "la session existe";
}
else{
echo "pas de session";
}
if(!isset($session->name))
{
$session->set('name',"TOTO");
}
else
{
echo "existe déjà";
}
$controller = JControllerLegacy::getInstance('InfoDocument');
$controller->execute(JFactory::getApplication()->input->get('task'));
$controller->redirect();
Merci d'avance pour votre aide
Tu ne peux pas tester "session->name".
$session->set('name',"TOTO");
ne crée par une propriété name de $session
(ce serait idiot d'avoir une méthode spécifique du framework pour faire cela).
La méthode set est + compliquée que cela (en fait elle crée un objet de la classe JObject dans l'instance de classe où elle est appelée).
Pour tester si 'name' a déjà été défini, et donc fait l'objet d'un set au préalable (donc dans ton cas si la variable de session a déjà été crée) tu peux utiliser un get avec une valeur par défaut, puis tester cette valeur par défaut.
Voir : https://api.joomla.org/cms-2.5/classes/JObject.htmlDernière édition par roland_d_alsace à 15/12/2018, 18h20
Laisser un commentaire:
-
Bonjour,
Je pense qu'il n'est pas utile de tester la session car elle est créée automatiquement quand vous démarrez votre application. Essayez plutôt le code suivant:
Code:$session = JFactory::getSession(); $sa = $session->get('name'); if(!isset($sa)) { $session->set('name','test'); } else{ echo $sa; }
Laisser un commentaire:
-
Problème variable de session
Bonjour à tous,
Je suis débutant sur Joomla et, dans le cadre du développement d'un composant, je rencontre un souci avec l'utilisation de la variable de session.
Voici le code figurant dans la page de base du composant
Code PHP:$session =& JFactory::getSession();
if(isset($session))
{
echo "la session existe";
}
else{
echo "pas de session";
}
if(!isset($session->name))
{
$session->set('name',"TOTO");
}
else
{
echo "existe déjà";
}
$controller = JControllerLegacy::getInstance('InfoDocument');
$controller->execute(JFactory::getApplication()->input->get('task'));
$controller->redirect();
Merci d'avance pour votre aideDernière édition par ossepove à 15/12/2018, 15h51Tags: Aucun
Annonce
Réduire
Aucune annonce pour le moment.
Laisser un commentaire: