Главная Заметки Joomla использование сессии в Джумле



Осуществляем все этапы разработки сайтов.
Программирование под заказ (PHP, JavaScript, Delphi, базы данных).

Контакты:

телефон: 8-921-989-73-77, Юлия
8-911-400-24-42, Александр
В вашем браузере запрещен Javascript, адрес электронной почты скрыт
  267442

  4477662

использование сессии в Джумле PDF Печать E-mail
Автор: Александр   
05.04.2011 09:19

Рано или поздно, наверное каждый разработчик на Джумле сталкивается с вопросом, как "подружить" сторонний скрипт с остальным кодом, работающим под управлением Joomla. Часто разработчики передают данные через переменные сессии, однако, попытавшись как обычно воспользоваться кодом внутри стороннего скрипта (например, если вы пишете код для собственной капчи):

session_start ();

....

$somecode = $_SESSION['somecode'];

пытаясь получить данные из кода, выполняющемся внутри компонента Джумлы, вы обнаружите, что переменная пуста - у Джумлы свой механизм работы с сессиями.

Но, оказалось, все достаточно просто.

 

Внутри компонента Джумлы с сессией работаем так:

$session =JFactory::getSession();

$session->set( 'somecode', $somecode ); // сохранение в сессии

$somecode = $session->get( 'somecode'); // чтение из сессии

В "стороннем" коде пишем:

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

Теперь, чтобы в этом скрипте работать с переменными сессии, обращаемся к JFactory точно так же, как и в коде Джумлы:

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

 

Контроль за копиями этого текста - сервис TextMarket

Обновлено 05.04.2011 09:49
 

Добавить комментарий


Защитный код
Обновить