Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

$session

Zdecydowałeś się na tworzenie interaktywnych stron przy pomocy PHP? Chcesz w łatwy i szybki sposób zarządzać danymi na swojej stronie? Tutaj znajdziesz pomoc w napotkanych przy tym trudnościach.

$session

Post 17.05.2017, 13:00:51

Napisany prze zemnie skrypt używa $SESSION i wszystko pięknie działa. Zająłem się więc sprawdzaniem ewentualnych błędów i napotkałem na jeden z nich.
W momencie nieoczekiwanego zamknięcia przeglądarki i ponownym uruchomieniu jeden ze skryptów dalej działa w "tle" pamiętając jednocześnie sesję i dzieją się cuda.

Jak sprawdzić przez PHP czy użytkownik nie zamknął przeglądarki bo wtedy mógłbym zakończyć działanie skryptu żeby znowu cuda się nie działy?
sasiadstar
Posty: 123
Dołączył(a): 26.08.2016

Re: $session

Post 17.05.2017, 15:55:06

W PHP nie da się sprawdzić czy użytkownik zamknął przeglądarkę. Możesz co najwyżej zgadywać, na przykład zapisując gdzieś na serwerze czas ostatniej akcji wykonanej przez użytkownika i przyjąć, że po 5 minutach nieaktywności zamknął on przeglądarkę. Możesz też "symulować" te akcje wywołując co jakiś czas żądanie AJAX do serwera.
Avatar użytkownikatoszcze
Bartosz Romanowski

SuperGod
SuperGod

Posty: 8896
Dołączył(a): 14.10.2003
Lokalizacja: Mysłowice

Re: $session

Post 17.05.2017, 20:41:55

A jak się to robi przy logowaniu do kont gdzie po czasie nie używania wyskakuje sesja wygasła. Którego rozwiązania stosują najczęściej?
sasiadstar
Posty: 123
Dołączył(a): 26.08.2016

Re: $session

Post 17.05.2017, 21:02:46

Nie wiem czy to dobrze zrobiłem ale działa ale teraz nie wiem jak mam się do tej wygasłej sesji zabrać.
Mam parę plików PHP które tworzą jeden spójny kod czyli obrabiają plik tekstowy, sprawdzają dodają usuwają z bazy, czasami o coś proszą użytkownika ale ogólnie większość kodu sama się wykonuje.
Ponieważ trochę to zajmuje mam zmienną $session która jest co chwile aktualizowana zależnie od postępów skryptu.
Ta zmienna jest odczytywana przez oddzielne żądanie Ajax wywoływane co ok 1sek Plik PHP obsługujący to żądanie jest nie zależny od reszty i służy tylko do odczytu tej zmiennej session i wysyłaniu do Ajaxa.
I właśnie tu jest problem bo główny skrypt potrafi pracować czasami 10-20 minut i cały czas zmienia tą zmienna, a jak użytkownik wyjdzie i wróci to odczytuje bzdury bo raz mu się wyświetla poprzedni skrypt a raz nowy.
Może jest jakaś funkcja rozpoczynająca sesje od początku ale nową bo jak próbowałem ją ubić to mi wywalało błędy.
Jak bym stworzył nowa sesję to by mi się nie gryzło to wszystko
sasiadstar
Posty: 123
Dołączył(a): 26.08.2016

Re: $session

Post 17.05.2017, 21:05:52

Wytłumacz to jakoś lepiej, bo chyba nie rozumiem.

Przeglądarka wysyła "ping" ajaxowy do serwera. I jak sprawdza stan? Przecież wywołanie z każdego połączenia jest niezależne.
kabexxx
Posty: 195
Dołączył(a): 27.11.2011

Re: $session

Post 17.05.2017, 21:29:10

Co mam ci wytłumaczyć jaśniej
sasiadstar
Posty: 123
Dołączył(a): 26.08.2016

Re: $session

Post 18.05.2017, 00:00:17

I jak sprawdza stan?

I co sprawdza?
kabexxx
Posty: 195
Dołączył(a): 27.11.2011

Re: $session

Post 18.05.2017, 07:43:03

No nie sprawdza żadnego stanu, czy użytkownik się rozłączył czy nie i w tym problem że nie wiem jak do tego podejść.
sasiadstar
Posty: 123
Dołączył(a): 26.08.2016

Re: $session

Post 18.05.2017, 08:04:39

Dobra prowizorycznie sobie poradziłem ,przynajmniej już mi nie robi takich cudów
Utworzyłem nowy plik i uruchamiam go na samym początku
Kod: Zaznacz cały
<?php
session_start();
session_regenerate_id();
?>

Przy każdym reloadzie strony sesja się zmienia.
sasiadstar
Posty: 123
Dołączył(a): 26.08.2016


Powrót do PHP i bazy danych


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot], Google Adsense [Bot] i 9 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 50458 zarejestrowanych użytkowników.
Najnowszy użytkownik: ewawy


Nasi użytkownicy napisali:

  • 935692 wiadomości
  • w 246593 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)