Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Po uplynieciu czasu, dodanie liczby do zmiennej
Forum PHP.pl > Forum > Przedszkole
Suule
Witam, chcialbym napisac skrypt ktory do zmiennej $p, dodał 5 po uplynieciu np. 3min.
Ale jakos nie przychodzi mi nic do glowy, nie prosze o zrobienie skryptu, tylko o porade... smile.gif
zegarek84
w sumie nie sadziłem że coś takiego w php jest ale może i mi się kidyś przyda ^^

tutaj podpowiedzi które możesz zastosować i wykożystać:
sleep()
usleep()
Suule
Hmm, to raczej nie to... sleep() - laduje mi sie strona 10sek dluzej. ^^
A mi poprostu chodzi o to ze po wcisnieciu przycisku, wlaczy sie "system" ktory po uplynieciu mniej wiecej 5 sekund doda mi np. 5 do zmiennej. Na poczatku mialem jeszcze zamiar by odliczalo mi czas.
Przykladowy widok:
(Przed wcisnieciem)
" Twoja zmienna = 10
|przycisk-dodaj| "

(Po wcisnieciu)

" Twoja zmienna = 10 Do dodania pozostalo 4 sec...
|przycisk-dodaj| "

(Po zakonczeniu dodawania)

" Twoja zmienna = 15
|przycisk-dodaj| "

To na tyle z moich planow... ^^. Jezeli ktos ma pomyslu to prosze pisac! smile.gif
ferrero2
Nie powinno się tego robić w php, tylko w javie.
Php działa po stronie serwera więc nie może działać tak jak java po stronie przeglądarki, do takich bajerków, gdzie jest jakieś odliczanie typu(rapidshare) itd korzysta się z jquery i ajaxa.
W php zawsze wiąże się to z odświerzeniem strony czyli wysłania zapytania na serwer.
erix
Cytat
Jezeli ktos ma pomyslu to prosze pisac!

Javascript; Google: setInterval
kefirek
  1. <?php
  2. $wynik = 0;
  3. $plik = basename($_SERVER['PHP_SELF']);
  4.  
  5. if(isset($_GET['id']) AND is_numeric($_GET['id'])) {
  6. $wynik = $_GET['id'] + 5;
  7. }
  8.  
  9. echo "Twoja zmienna = ".number_format($wynik)."";
  10.  
  11. <form name='test' method='post' action='".$plik."?id=$wynik'>
  12. <input type='submit' name='dodaj' value='Dodaj'>
  13. </form>";
  14. ?>


I jak chcesz tylko co 5 s to tworzysz cookie na 5 s i zapisujesz tam wartość zmiennej wynik by nie można było jej podstawić a adresie.
Suule
  1. <?php
  2. if (isset($_POST['zmienna']))
  3.   {
  4.     $p=$_POST['zmienna'];
  5.   }
  6.   else
  7.   {
  8.     $p=0;
  9.   }
  10.   if (isset($_POST['button']))
  11.   {
  12.     $p++;
  13.   }
  14.   echo 'Zmienna = '. $p;
  15.   echo '';
  16.   echo '';
  17.   echo '';
  18.   echo '';
  19.  ?>


Ostatnio zrobilem bardzo podobny skrypt jak Ty teraz Kefirek, ale chcialem sie nim troszke pobawic, wiec dlatego co jakis czas wymyslam sobie nowe "zadania" i wykonuje je pomalu... dla mnie to najlepsza droga nauki. Ferrero2 napisal by uzyc JS, wiec sprobuje go uzyc, moze cos z tego wyjdzie smile.gif

Cytat(ferrero2 @ 12.01.2009, 16:51:48 ) *
Nie powinno się tego robić w php, tylko w javie.
Php działa po stronie serwera więc nie może działać tak jak java po stronie przeglądarki, do takich bajerków, gdzie jest jakieś odliczanie typu(rapidshare) itd korzysta się z jquery i ajaxa.
W php zawsze wiąże się to z odświerzeniem strony czyli wysłania zapytania na serwer.


Hmm, a czy mozliwe jest zrobienie cos takiego (w PHP) by co np. minute dodawalo mi jaka wartosc do zmiennej, bez nacisniecia-automatycznie. Hmmm... cos podobnego jak w grach via www.
erix
Cytat
Hmm, a czy mozliwe jest zrobienie cos takiego (w PHP) by co np. minute dodawalo mi jaka wartosc do zmiennej, bez nacisniecia-automatycznie. Hmmm... cos podobnego jak w grach via www.

Cron.
Suule
No tak tylko ze to jest tylko nauka i zabawa, wiec nie zamierzam zmieniac systemu smile.gif
erix
A po co zmieniać system? Przecież Cron jest dostępny na różne platformy.
melkorm
Kod
<script type="text/javascript">
var i = 0;
function up() {
i++;
setTimeout('up()', 36);
}
setTimeout('up()', 36);
setTimeout('alert(i)',3600);
</script>


Może coś w tym stylu ? Nie jestem pewien ;]
zegarek84
Cytat(Suule @ 12.01.2009, 16:21:16 ) *
Hmm, to raczej nie to... sleep() - laduje mi sie strona 10sek dluzej. ^^


a nie mozna by tego wykonać po wypuszczeniu buforu cool.gif questionmark.gif - sprawdziłem na localhoście i działa - schematycznie wygląda to tak:
- coś wcześniej (np obliczenia)
ob_start()
(ciało dokumentu)
........
ob_end_flush() - wypuszczenie dokumentu"

sleep() - puźniejsze operacje



Cytat(kefirek @ 12.01.2009, 16:55:52 ) *
I jak chcesz tylko co 5 s to tworzysz cookie na 5 s i zapisujesz tam wartość zmiennej wynik by nie można było jej podstawić a adresie.

Cytat(Suule @ 12.01.2009, 17:24:22 ) *
Hmm, a czy mozliwe jest zrobienie cos takiego (w PHP) by co np. minute dodawalo mi jaka wartosc do zmiennej, bez nacisniecia-automatycznie. Hmmm... cos podobnego jak w grach via www.


jeśli chcesz zmieniać wartości na stronie bez klikania to jedynie w js - jesli ta wartość ma być inna po kliknięciu i ta zmienna jest np. zależna od jakiegoś zegara to wystarczy skożystać z funkcji czasu i napisać formułke do ogólnego wzoru matematycznego



zmienna= zmienna_początkowa + ilość_skoków * wartość_skoku



ilość_skoków = różnica_czasów/skok - to zaokraglone w dół

skok - np 1min

różnica_czasów=czas2-czas1



i w zależności od potrzeb ta zmienną możesz przechowywać w bazie bądź w cookis, jeśli z kolei zmianę czasu czy zmiennej chcesz uzależnić od długości przebywania na stronie to musisz wykożystać javascript - jesli to ma byc trwalsza zmiana czyli z bazą to musisz trochu rozszeżyć tą javascript o AJAX

bardzo dużo zależy od tego co dokładnie chcesz uzyskać winksmiley.jpg
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.