2010-07-27 3 views
47

J'utilise Magento et j'essaie d'enregistrer une valeur dans la session comme suit dans son fichier index.php, mais la valeur n'est pas conservée.Comment enregistrer une valeur dans ma propre variable de session dans Magento?

$_SESSION['myvar'] = '1'; 

Comment faire?

Merci

+0

J'ai eu le même problème lors de l'utilisation 'setcookie()' directement, comme le modèle 'noyau/cookie' gère la mise en ceux-ci, et trouvé qu'il était écrasant mes valeurs. – DWils

Répondre

74

Disons que vous voulez sauvegarder la valeur « Bonjour tout le monde » à la variable « message de bienvenue » à la session. Le code serait:

$inputMessage = 'Hello World'; 
Mage::getSingleton('core/session')->setWelcomeMessage($inputMessage); 

Maintenant, vous voulez faire écho le "message de bienvenue" ailleurs dans votre code/site.

$outputMessage = Mage::getSingleton('core/session')->getWelcomeMessage(); 
echo $this->__($outputMessage); 
+16

Il convient de mentionner comment effacer (annuler) une variable de session: Mage :: getSingleton ('core/session') -> unsWelcomeMessage(); Le "uns" signifie "unset". –

+3

Je sais que c'était il y a 5 ans, mais MERCI! – Paradoxetion

32

Suivant l'exemple donné par Ali Nasrullah, je le ferais:

$session = Mage::getSingleton("core/session", array("name"=>"frontend")); 
// set data 
$session->setData("device_id", 4); 
// get data 
$myDeviceId = $session->getData("device_id"); 

Assurez-vous d'inclure /app/Mage.php [Mage-root] befor appelant le code ci-dessus!

@Ali Nasrullah: Passer la valeur de device: id comme second paramètre de la fonction setData.

+1

J'ai essayé ce qui précède, mais je n'ai pas réussi à le faire fonctionner. Comment appeler /app/Mage.php. Par défaut, index.php inclut: require_once $ mageFilename; Est-ce suffisant? –

6
frontend: Mage::getSingleton('core/session')->setYourNameSession($session_value); 

backend: Mage::getSingleton('admin/session')->setYourNameSession($session_value); 
Questions connexes