Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt losowania.
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
pobierak
Witam,

Po pierwsze chciałem się przywitać, gdyż jestem nowy.
Mam takie pytanie:
Czy wie ktos może jak wykonać skrypt, który losowałby numer po upływie określonego czasu (np. co 24 godziny). Udało mi się napisać coś takiego

  1. <?
  2. $nr = rand(1,20);
  3. print ' ' . $nr . '';
  4. ?>

Niestety skrypt ten (funkcja rand()) po każdym odświeżeniu strony wyświetla inny numer z przedziału od 1 do 20. Co dopisać lub jakiej funkcji użyć, aby losowało numer np. co 24 godziny. Czy jest to w ogole możliwe? Z góry dzięki za odpowiedź.

Pozdrawiam,
Pobierak
Pietras
Byyyłooo... http://www.google.pl/search?hl=pl&q=%22cro...aj+w+Google&lr=

Można też użyć funckcji date().
pobierak
No tak, wiem, że można użyć Crona, ale chyba nie na każdym serwerze jest dostępny? Jakieś inne propozycje? Z góry dzięki za odpowiedzi.
Pietras
Można, ale ktoś będzie musiał wejść na stronę i odpalić skrypt. Oczywiście zabezpieczenie, przed kilkaktornym losowaniem będzie, ale np. jeśli pierwsze wejście na stronę po godzinie 0:00 będzie powiedzmy o 6:30 to dopiero wtedy wykona się losowanie.
pobierak
A jak wyglądałby mniej więcej taki skrypt? Jest to dobre rozwiązanie, bo pierwsza osoba, która chciałby zobaczyć wynik losowania uruchomiłaby przy okazji skrypt (dobrze rozumiem)?

P.S. Super szybie odpowiedzi smile.gif.
Pietras
napisze ci w pseudokodzie jakby to mniejwięcej wyglądało.
Kod
if(godzina == 24) {
  if(plik_check.txt == 'N') {
    wylosuj liczbę i zapisz ją do number.txt
    zmien tresc check.txt na Y
  }
} elseif(godzina == 1) {
  if(plik_check.txt == 'Y') {
   zmien tresc check.txt na N
  }
}
pobierak
Teraz trzeba doprowadzić ten kod do uzytku. Moze jeszcze ktos pomoze, bo nie jestem zbyut biegły w php. Będę kombinował. Dzięki za tyle @Pietras, może ktoś jeszcze mi pomoże. Z góry dzięki za odpowiedzi.

Pozdrawiam,
Pobierak
Pietras
A to teraz mam kilka minut to napisze, tylko nie mam 100% gwarancj że o to zadziała, jak napiszę - wyedytuje post.

  1. <?
  2. $godzina = date("G");
  3.  
  4. if($godzina == "0") {
  5. $check = file_get_contents("check.txt");
  6. if($check == 'N') {
  7. $nr = rand(1,20);
  8. $handlen = fopen("nubmer.txt", "w");
  9. fwrite($handlen, $nr);
  10. fclose($handlen);
  11. $handle = fopen("check.txt", "w");
  12. fwrite($handle, "N");
  13. fclose($handle);
  14. }
  15. } elseif($godzina == "1") {
  16. $check = file_get_contents("check.txt");
  17. if($check == 'Y') {
  18. $handle = fopen("check.txt", "w");
  19. fwrite($handle, "N");
  20. fclose($handle);
  21. }
  22. }
  23. ?>


Nie jestem pewien czy działa, jak zauważe jakiś błąd - wyedytuje post winksmiley.jpg
pobierak
Coś jakby się działo, ale pliki number.txt i check.txt pozostają puste. Zmieniałem godzine na 24 i zaczął wyskakiwać błąd, że "nie można odnaleźć plików number.txt i check.txt". Gdy je stworzyłem błąd już nie wyskakiwał, ale pliki są puste.
Pietras
Wpisz do check "N".
pobierak
Chodziło o plik check.txt? Jesli tak, to dalej nic się nie dzieje.
Pietras
a co ma sie dziać? Liczba wylosuje się o północy winksmiley.jpg
pobierak
Heh, a nie da się tego jakoś przyspieszyć, np. poprzez zmianę godziny na 24 winksmiley.jpg?
Pietras
to zmień 0 na 18, a 1 na 19 to się odpali o 18 winksmiley.jpg

------

A jak chcesz szybko przetestować to zamień date("G") na date("i") i wtedy zamiast 0 wpisz np. 50, a zamiast 1 - 53. I zmien plik check.txt na "N".
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-2024 Invision Power Services, Inc.