Saturday 5 January 2013

How to access session variables set by an external script in joomla site




How to access session variables set by an external script ??

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

No comments:

Post a Comment