How to access session variables set by an external script

From Joomla! Documentation

Revision as of 20:06, 14 January 2011 by Mvangeest (talk | contribs) (Tutorial:How to access session variables set in external script moved to How to access session variables set by an external script: Moved page to main namespace because the Tutorial namespace is deprecated)

Situation: when you call a session variable in Joomla from an external script, it appears to be empty.


Solution: Replace session_start(); in your external script with

define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../..' ));
define( 'DS', DIRECTORY_SEPARATOR );

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

Be sure to change JPATH_BASE to suit your directory structure.

Replace the $_SESSION[ 'name' ] = "value"; in your external script with

$session =& JFactory::getSession();
$session->set('name', "value");

Now you can retrieve this session variable using:

$session =& JFactory::getSession();
echo $session->get('name');