Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Odliczanie
Zeelof
post 5.02.2011, 13:52:20
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 7.02.2008

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Zeelof 5.02.2011, 14:23:15
Go to the top of the page
+Quote Post
blade-mrn
post 5.02.2011, 15:20:42
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 11
Dołączył: 20.10.2009

Ostrzeżenie: (0%)
-----


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


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 20:09