Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt losowania., Losowanie numeru po upływie czasu.
pobierak
post 3.10.2005, 15:13:33
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
Pietras
post 3.10.2005, 15:16:26
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 3.10.2005, 15:22:08
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 3.10.2005, 15:24:28
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 3.10.2005, 15:26:19
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 smile.gif.
Go to the top of the page
+Quote Post
Pietras
post 3.10.2005, 15:30:24
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 3.10.2005, 15:43:07
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 3.10.2005, 15:47:47
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 winksmiley.jpg

Ten post edytował Pietras 3.10.2005, 15:56:08
Go to the top of the page
+Quote Post
pobierak
post 3.10.2005, 16:09:54
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 3.10.2005, 16:15:07
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 3.10.2005, 16:17:50
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 3.10.2005, 16:19:49
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 winksmiley.jpg
Go to the top of the page
+Quote Post
pobierak
post 3.10.2005, 16:24:15
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 winksmiley.jpg?
Go to the top of the page
+Quote Post
Pietras
post 3.10.2005, 16:28:09
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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.05.2024 - 04:08