Witam.
Zmodyfikowałem odrobinkę szablon mojej stronki opartej na joomla tak, by podczas logowania wykonywany był (dzieki ajax) zewnętrzny skrypt php. W znacznym uproszczeniu skrypt ten wygląda tak:
Kod PHP:
define('_JEXEC', 1);
define('JPATH_BASE', dirname(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();
$session =& JFactory::getSession();
$login = $_POST['login'];
$session->set('status', 1);
$session->set('login', $login);
Stworzyłem sobie jakiś przycisk przenoszący użytkownika do zrobionego przeze mnie panelu. W rzeczywistości jest to artykuł, który dzięki wtyczce sourcerer posiada kod php zamieszczony poniżej:
Kod PHP:
{source}
<?php
require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php');
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$session =& JFactory::getSession();
$status = $session->get('status');
$login = $session->get('login');
echo "<p>login: " . $login . " status: " . $status . "</p>";
?>
{/source}
Po pierwszej próbie logowania wszystko jest ok. Panel wyświetla poprawną nazwę użytkownika. Po restarcie przeglądarki i ponownej próbie zalogowania, otrzymuję login który wpisałem poprzednio a nie ten aktualny. Dopiero po 15-minutach (taki czas trwania sesji mam ustawiony w joomla), mogę zalogować się na inny login. Co gorsze, kolega próbując logować się z całkowicie innego komputera również otrzymuje "MOJE" dane z sesji którą zainicjowałem ja.
Jeśli nie dojdę o co chodzi, prawdopodobnie będe próbował walczyć w sposób opisany tutaj:
http://forum.joomla.pl/showthread.ph...a-komponentami
Może jednak ktoś z was zetknął się z czymś podobnym ?
P.S. session_handler mam ustawione na database.