problem z getSession()
Strona 1 z 2 12 OstatniOstatni
Wyniki 1 do 10 z 15

Temat: problem z getSession()

  1. #1
    Debiutant
    Dołączył
    14-12-2012
    Wpisy
    7
    Punkty
    2

    Domyślny problem z getSession()

    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.

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Wyjadacz pawelSafiStudio awatar
    Dołączył
    27-09-2010
    Wpisy
    646
    Punkty
    90

    Domyślny

    Hmm... Ku czemu ma służyć ten skrypt? Przecież Joomla! ma wbudowany mechanizm logowania. Nie lepiej to wykorzystać, a następnie zamiast korzystać z JSession po prostu odwoływać się do &JFactory::getUser() ?
    "Twoja strategia jest do bani (głównie dlatego, że nie poświęcasz jej wystarczająco dużo czasu)" - Mitch Joel

  4. #3
    Debiutant
    Dołączył
    14-12-2012
    Wpisy
    7
    Punkty
    2

    Domyślny

    Ten skrypt nie korzysta z lokalnej bazy danych. Generalnie pomińmy sensowność tego co robię, swoją drogą, że wszystko już mam gotowe podczas gdy przy testach natknąłem sie na ten problem i naprawdę nie widzi mi sie przebudowywanie tego wszystkiego.

  5. #4
    Wyjadacz pawelSafiStudio awatar
    Dołączył
    27-09-2010
    Wpisy
    646
    Punkty
    90

    Domyślny

    A ta wtyczka jest wywoływana z poziomu artykułu Joomla! czy jest to zewnętrzny plik?
    "Twoja strategia jest do bani (głównie dlatego, że nie poświęcasz jej wystarczająco dużo czasu)" - Mitch Joel

  6. #5
    Debiutant
    Dołączył
    14-12-2012
    Wpisy
    7
    Punkty
    2

    Domyślny

    tak jak juz pisałem:
    Cytat Wysłane przez krzysztoff7 Zobacz wiadomość
    P.S. session_handler mam ustawione na database.

  7. #6
    Wyjadacz pawelSafiStudio awatar
    Dołączył
    27-09-2010
    Wpisy
    646
    Punkty
    90

    Domyślny

    Tak doczytałem wyżej, ale przed edycją już odpisałeś Zmienione pytanie jest wyżej.
    "Twoja strategia jest do bani (głównie dlatego, że nie poświęcasz jej wystarczająco dużo czasu)" - Mitch Joel

  8. #7
    Debiutant
    Dołączył
    14-12-2012
    Wpisy
    7
    Punkty
    2

    Domyślny

    wtyczka wywoływana z poziomu artykułu. Jak coś dostępna jest tutaj:
    http://extensions.joomla.org/extensi...n-content/5051

    żądany kod php/js/html umieszcza się miedzy tagami {source}...{/source}

  9. #8
    Wyjadacz pawelSafiStudio awatar
    Dołączył
    27-09-2010
    Wpisy
    646
    Punkty
    90

    Domyślny

    Nigdy nie korzystałem z tego pluginu ale będę strzelał. Czy próbowałeś wykonać skrypt bez ponownej inicjacji aplikacji Joomla! ? Jeśli jest to wykonywane z poziomu artykułu to wymagane biblioteki powinny być już wczytane a aplikacja uruchomiona. Czyli kod zaczynamy od razu od $session = &JFactory::getSession().
    "Twoja strategia jest do bani (głównie dlatego, że nie poświęcasz jej wystarczająco dużo czasu)" - Mitch Joel

  10. #9
    Debiutant
    Dołączył
    14-12-2012
    Wpisy
    7
    Punkty
    2

    Domyślny

    Niestety pozbycie sie zbędnych linijek i rozpoczęcie kodu od:
    Kod PHP:
    $session = &JFactory::getSession(). 
    Nic nie daje. W sumie próbowałem juz tak też.

  11. #10
    Wyjadacz pawelSafiStudio awatar
    Dołączył
    27-09-2010
    Wpisy
    646
    Punkty
    90

    Domyślny

    Sprawdź w bazie danych jak zapisują się dane sesji. Spróbuj zalogować się z dwóch różnych przeglądarek.
    "Twoja strategia jest do bani (głównie dlatego, że nie poświęcasz jej wystarczająco dużo czasu)" - Mitch Joel

Strona 1 z 2 12 OstatniOstatni

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •