2013-06-14 3 views
0

Я использую Прохладный PHP Captcha расширения captcha, который генерирует изображение при вызове его из элемента IMG через SRC атрибутJoomla Session и Прохладное PHP Captcha

Существует проблема, что расширение начинает свое собственная сессия обычной PHP-путь.

Joomla использует собственный метод SESSION. Я попытался инициировать внешний скрипт в Joomla, как здесь (Accessing session data outside Joomla), но без успеха.

Joomla CAPTCHA, позвонив:

<img src="<?php echo $this->baseurl ?>/templates/<?php echo 
$this->template ?>/captcha/captcha.php" id="captcha" /> 

Защитный код инициализации:

session_start(); 

$captcha = new SimpleCaptcha(); 
+0

Вы пытались обернуть его в компонентный контроллер Joomla? Это должно заставить его выбрать сеанс Joomla. Обязательно добавьте 'exit();' вызов после перехвата, чтобы не допустить, чтобы Joomla выводил любые материалы шаблона. – MrCode

ответ

0

Резолюция, которая, наконец работал для меня:

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

$ses = JFactory::getSession(); 

$captcha = new SimpleCaptcha(); 

// Image generation 
$text = $captcha->CreateImage(); 
$ses->set('captcha', $text); 

пару строк ниже есть $ _SESSION установка, которая должна быть зарегестрировано

Смежные вопросы