Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Opóźnienie wykonania części kodu
Forum PHP.pl > Forum > Przedszkole
Mat00
Witam,
Chcę opóźnić wykonanie fragmentu kodu na około 3 minuty. Użyłem ob_flush(); flush(); sleep(); ale nie działają. Blokują wczytanie całej strony na 3 minuty i potem wywalają wszystko naraz. Jest mi to potrzebne ponieważ w jednym z cms chcę dodać punkty użytkownikowi np. za przeczytanie artykułu, ale dopiero po 3 minutach od wejścia. Wszystko działa mi idealnie tylko nie wiem jak opóźnić ten czas... może znacie jakieś zupełnie inne rozwiązania ?
wNogachSpisz
W PHP ciężko coś takiego zrobić bez kombinacji. Jeśli ma działać na każdym tanim hostingu, to tylko CRON. Stwórz w bazie danych specjalną tabelę do któej będziesz wstawiał zadania do wykonania, może być to np. zserializowany obiekt. Potem CRONem odpalasz taki kod.
Crozin
Samo opóźnienie wykonania kodu Ci nic nie da. Bo co jeżeli użytkownik wejdzie na stronę, serwer zacznie odliczać trzy minuty, a następnie użytkownik zamknie okno przeglądarki? Musisz nieco inaczej to rozwiązać.

1. Użytkownik wchodzi na stronę - w sesji zapisujesz czas tego wejścia.
2. Na stronie wrzucasz skrypt JS, który przy pomocy AJAX-a, przykładowo co 30-60 sekund wysyła do serwera żądanie, którego celem jest jedynie poinformowanie serwera o tym, że użytkownik nadal jest na stronie.
3. Skrypt, do którego wysyłane jest żądanie z punktu 2. zapisuje sobie w sesji informację o czasie ostatniej aktywności. Ponieważ ma dostęp do tych samych danych (zapisanych w sesji) co skrypt z punktu 1. może porównać czy czas ostatniej aktywności, czyli obecny czas, minus czas rozpoczęcia oglądania (nadany w pierwszym punkcie) jest większy bądź równy trzem minutom - jeżeli tak, wykonaj dowolny kod jaki tam potrzebujesz.

markonix
Sposób dobry jeżeli mówimy o własnych podstronach.
Jeżeli chcemy promować cudze strony można pokusić się o ramkę iframe, w której będzie reklamowana strona (100% szerokości).
U góry jakiś pasek z licznikiem choć to już kosmetyka i działanie zbliżone do rozwiązania kolegi choć bez ajax co X sekund tylko jeden po odliczeniu czasu.
Zalecam wspomóc się sesjami aby skrypt był bardziej bezpieczny.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.