Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt losowania., Losowanie numeru po upływie czasu.
pobierak
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.10.2005

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Pietras
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.03.2005

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


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

Można też użyć funckcji date().
Go to the top of the page
+Quote Post
pobierak
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.10.2005

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


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.
Go to the top of the page
+Quote Post
Pietras
post
Post #4





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.03.2005

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


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.
Go to the top of the page
+Quote Post
pobierak
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.10.2005

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


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
Pietras
post
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.03.2005

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


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
  }
}
Go to the top of the page
+Quote Post
pobierak
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.10.2005

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


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
Go to the top of the page
+Quote Post
Pietras
post
Post #8





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.03.2005

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


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Pietras 3.10.2005, 15:56:08
Go to the top of the page
+Quote Post
pobierak
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.10.2005

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


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.
Go to the top of the page
+Quote Post
Pietras
post
Post #10





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.03.2005

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


Wpisz do check "N".
Go to the top of the page
+Quote Post
pobierak
post
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.10.2005

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


Chodziło o plik check.txt? Jesli tak, to dalej nic się nie dzieje.
Go to the top of the page
+Quote Post
Pietras
post
Post #12





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.03.2005

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


a co ma sie dziać? Liczba wylosuje się o północy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
pobierak
post
Post #13





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.10.2005

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


Heh, a nie da się tego jakoś przyspieszyć, np. poprzez zmianę godziny na 24 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ?
Go to the top of the page
+Quote Post
Pietras
post
Post #14





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.03.2005

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


to zmień 0 na 18, a 1 na 19 to się odpali o 18 (IMG:http://forum.php.pl/style_emoticons/default/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".

Ten post edytował Pietras 3.10.2005, 16:45:46
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 09:01