Здравствуйте, уважаемые форумчане! Может быть и не по адресу обращаюсь, но прошу помочь разобраться мне с работой сессий в CMS Joomla 3.4.4, возможно у кого-то есть какой-то опыт. Вопрос состоит в следующем: Пишу небольшой модуль, который реализует форму обратной связи, у этой формы есть капча. Соответственно в капче я прописываю: Код (CODE): 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'); $mainframe->initialise(); $session = $mainframe->getSession(); //Тут код генерации капчи, дальше пишется значение в сессию $session->set('qcapcha', $captcha); В основном файле модуля написан небольшой код, проверяющий значение капчи, полученный через сессию: Код (CODE): $session = JFactory::getSession(); $capcha=$session->get('qcapcha',null); А теперь сама суть вопроса: Почему при обработчике сессий database - иногда попадаются старые значения капчи( или вообще возвращаются пустые значения), а при обработчике none, т.е. стандартном таких проблем нет? Куда копать даже не знаю. Доки смотрю с https://docs.joomla.org но не нахожу что в случае с обработчиком сессий database нужно работать как-то по-другому. И заметил еще одну особенность-если я включаю тот же код, что находится в модуле, в какой-либо другой файл(чистый php), то сессия работает на нем стабильно в режиме database.
не понятно на фига ты нагородил такой ерунды в генераторе капчи? не проще ли отправлять запрос через index.php! т.е. что бы файл генерации запускался через запрос типа /index.php?option=com_swj&view=schedule&id=7&Itemid=276 к примеру! тогда у тебя всё будет в одной и той же сессии P.S. и вообще для таких игр с капчей должно быть отключено (принудительно) кэширование, что бц или весь модуль или какая то его часть вообще ни каким макаром в кэш не попадала, надеюсь в доках найдёшь как работать с кэшем
Спасибо за быстрый отклик!Я не большой спец по веб-программированию и не знаю "хороших" практик, не совсем понял вашей мысли. Т.е. через url мы можем каким-то образом обратиться к php-скрипту с капчей(а в скрипте с капчей нужно как-то обрабатывать этот вызов)? Про кеширование спасибо-буду разбираться! P.S. Форма обратной связи написана была сначала на чистом PHP и работала на сессиях без особых проблем, теперь появилась необходимость сделать такой же модуль для Joomla(а с ней я не сильно знаком). Еще раз спасибо
самый простой способ отправить генератор капчи в плагин а вот список событий на которые можно зацепить сначала генератор, а потом уже обработчик https://docs.joomla.org/Plugin/Events а тут (это уже в каталоге самой CMS) \plugins\captcha\recaptcha\ можно посмотреть как сделана обработка reCaptcha и на основе данного плагина написать свой)))