How to access session variables set by an external script

Other languages:
English 100% • ‎español 100% • ‎français 100% • ‎Nederlands 100%

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__).'/../..' ));
require_once ( JPATH_BASE. '/includes/defines.php' );
require_once ( JPATH_BASE. '/includes/framework.php' );
$mainframe = JFactory::getApplication('site');

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');