Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Odliczanie
Forum PHP.pl > Forum > Przedszkole
Zeelof
Chciałbym zrobić skrypt w stylu:
  1. if $czas !== '0'
  2. {
  3. // funkcja odliczająca czas od 10 do 0 - odliczanie co sekundę
  4. } else {
  5. // jeżeli $czas = '0' to wywoła się jakiś skrypt
  6. }


Znalazłem coś takiego, ale to raczej jeszcze nie to:
  1. <?
  2. $czas=time();
  3. $minuty=floor($czas/60);
  4. $odlicz=(999999999-$minuty)%108;
  5. echo $odlicz;
  6. ?>


Problem w tym, że strona może być w tym czasie odświeżana, więc zastanawiam się nad użyciem ciasteczek.
Proszę o jakąś radę i pomoc przy skrypcie.
blade-mrn
Sądzę że tego nie da się zrobić w PHP (przynajmniej bez dostępu do cron-a) bo przecież skrypt PHP jest analizowany tylko podczas generowania strony. Jeśli chcesz aby czas był odliczany na bieżąco to prościej jest zrobić to w JavaScript np. tak:
[JAVASCRIPT] pobierz, plaintext
  1. startCookie=document.cookie.indexOf("czas=");
  2. if (startCookie!=-1)
  3. {
  4. var c=getCookie("czas");
  5. }
  6. else
  7. {
  8. var c=; //ilość czasu podana w milisekundach
  9. }
  10. var t;
  11. var timer_is_on=0;
  12. function timedCount()
  13. {
  14. if (c>0)
  15. {
  16. godz = Math.floor(c/60/60);
  17. if (godz < 10) {godz = "0"+godz}
  18. min = Math.floor(c/60)-godz*60;
  19. if (min < 10) {min = "0"+min;}
  20. sek = c % 60;
  21. if (sek < 10) {sek = "0"+sek;}
  22. document.getElementById('txt').innerHTML=godz+" h "+min+" min "+sek+" sek";
  23. c=c-1;
  24. t=setTimeout("timedCount()",1000);
  25. zap_czas (c);
  26. }
  27. if (c==0)
  28. {
  29. var expire = new Date();
  30. document.cookie="czas=;expires="+expire.toGMTString();
  31. window.location.href="strona"; //przekierowanie na inną stronę po upływie czasu
  32. }
  33. }
[JAVASCRIPT] pobierz, plaintext

A tu masz funkcje zapisujące czas do ciasteczka. Czas jest zapisywany i pobierany przy każdym cyklu czyli co sekundę.
[JAVASCRIPT] pobierz, plaintext
  1. function zap_czas (time)
  2. {
  3. var expire = new Date();
  4. document.cookie="czas=;expires="+expire.toGMTString();
  5. document.cookie="czas="+time;
  6. }
  7. function getCookie(Name)
  8. {
  9. var search = Name + "=";
  10. if (document.cookie.length > 0)
  11. {
  12. offset = document.cookie.indexOf(search);
  13. if (offset != -1)
  14. {
  15. offset += search.length;
  16. end = document.cookie.indexOf(";", offset)
  17. if (end == -1) end = document.cookie.length
  18. return unescape(document.cookie.substring(offset, end))
  19. }
  20. }
  21. }
[JAVASCRIPT] pobierz, plaintext
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.