![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mam przeczucie, że zostanę zlinczowany za tego post'a bo temat SESJE został już na forum przewałkowany wiele razy ale sytuacja zmusza mnie do podniesienia go ponownie. :?
Jest tak: albo ja nie umiem czytać manuala, albo pies jest pogrzebany gdzie indziej. ![]() To jest kod otwierający sesję po podaniu prawidłowego hasła i loginu: Kod session_name("SID");
session_start(); $sid=session_id(); $query ="INSERT INTO rejestr_logowan (session_key, active_session, login, ip, czas_zalog, ) VALUES ('$sid','1','$login',$REMOTE_ADDR',now())"; $result = mysql_query($add) or die("nie został wygenerowany nowy unikatowy numer sesji więc baza staje okoniem"); Zapytanko do MySQL ma mi dodać rekord do bazy przy każdym logowaniu. Dodam, że pole session_key w tabeli rejestr_logowan jest indeksowane jako unique więc nie ma mowy o dopisaniu rekordu jeśli identyfikator sesji nie jest nowy. A traz mamy kod zamykający sesję przy wylogowywaniu: Kod session_name("SID");
session_start(); $sid=session_id(); $query="UPDATE rejestr_logowan SET active_session='0',czas_wylog=now() WHERE session_key='$sid'"; $result=mysql_query ($query) or die (mysql_error()); session_destroy(); setcookie("SID"); Rozumiem, że ta ostatnia linijka jest konieczna gdyż jak mówi manual ciacho nie jest usuwane po wydaniu komendy session_destroy();, a mi zależy na definitywnym, natychmiastowym usunięciu sesji nawet bez zamykania okna przeglądarki. I teraz powstaje problem: to po prostu nie działa. ![]() Nie będę nawet wspominał, że sesja nie znika gdy użytkownik zamknie okno przeglądarki bez wylogowania - to oczywiste. Nie wspomnę, że zamknięcie okienka potomnego przeglądarki wywołanego za pomocą JavaScript nie usuwa ciacha z pamięci bo jest otwarte okno pierwotne - IE ma gdzieś to, że cookie powstało w oknie potomnym i jak się je zamyka to cookie powinno zniknąć (z tego co wiem to błąd IE). To wszystko jeszcze bym jakoś zdzierżył. Ale dlaczego nie daje się najnormalniej w świecie zniszczyć sesji - tego nie wiem. Za wszelkie uwagi i wyrozumiałość z góry dziękuję. A tak BTW - jest na forum mój post pod tytułem bodajże SSL, PDFLib a sprawa POST-a albo coś w ten deseń i na rozwiązanie problemu który jest w nim postawiony jakoś od dłuższego czasu nie ma odważnych... :wink: -------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Sorki. Z niewiadomych przyczyn, po dwóch dniach walki, ni z tego ni z owego sesja zaczęła się prawidłowo usuwać. :oops:
Ale pozostaje aktualny problem o którym wspomniałem w wyżej. Cookie sesyjne nie usuwa się z pamięci przeglądarki (IE6) jeśli sesja została zainicjowana w nowym, wywołanym JavaScriptem okienku. Zamknięcie go nic nie daje. Dopiero zamknięcie głównego okna usuwa cookie. Ma ktoś jakąś metodę na to :?: -------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 456 Pomógł: 0 Dołączył: -- Ostrzeżenie: (0%) ![]() ![]() |
![]() ![]() dobry jestes :wink: wrocmy do pytania: nie rozwiazesz tego problemu bo IE klonuje sesjie jesli nowe okno zostalo utworzone przez jakies okno..czyli JS lub poprostu Ctrl+N .. tylko zamniecie okna matki zniszczy sesjie tak juz jest w IE i nic na to nie poradzisz lecz jesli sie nad tym zastanowisz to nawet jest logiczne ze tak funkcionuje :wink: a i daj linki do tych nierozwiazanych postow :wink: -------------------- pozdrawiam
CASTOR |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat ![]() ![]() dobry jestes :wink: Dwa dni walczyłem aż w końcu wysłałem pierwszego post'a. Potem zadziałało i wysłałem drugiego. Zwykle nie wypisuje nic na forum zanim sam z tym trochę nie powalcze. :wink: Cytat a i daj linki do tych nierozwiazanych postow :wink:
Proszę bardzo: http://forum.php.pl/viewtopic.php?t=433 Nie wiem czy jest to takie logiczne, że dane z jednego okna same przenoszą się do innego. :? Według mnie tam gdzie wywołujesz sesję tam też powinieneś móc ją zamknąć. Mogli co najwyżej dodać komendę choćby JavaScript'ową która przenosi ciastko sesyjne do okna macierzystego. Takie rozwiązanie jak bierzące jest mało elastyczne. A jeśli ktoś chce wyrzucić 2 okna i w każdym z nich inną sesję - a potem pozamykać te sesje (i okna) i wrócić do głównego? Nie do zrobienia. Wiem, że może to zbyt wielkie wymagania, ale nie mogę się doczekać czasów gdy przeglądarka będzie tak elastyczna jak środowisko systemu operacyjnego. Ale dzięki za info. -------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 456 Pomógł: 0 Dołączył: -- Ostrzeżenie: (0%) ![]() ![]() |
twoje wymaganie nie sa wysokie..
..a jesli chcesz cos takiego osiagnac to nie przez sesie ktore oferuje ci php tylko sam se napisz :wink: i w kazdym oknie nowe ciacho :wink: -------------------- pozdrawiam
CASTOR |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 14:45 |