Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][CRON] Rand co 24h
Forum PHP.pl > Forum > Przedszkole
M45t3r
Witam!

Jestem zmuszony do napisania skryptu ktory bedzie wykonywal sie co 24h (tj. w index.php bedzie
  1. <?php
  2. rand(1,30);
  3. ?>
ale chce zeby ten rand wykonal sie tylko raz!! na 24h)) wiem, ze jest potrzebny cron, ale jak to zrobic?

innym pomyslem na rozwiazanie tego problemu jest zrobienie oddzielnego pliku, ktory bedzie sie wykonywal co 24h i wyloswana liczbe bedzie zapisywal do bazy czyli

  1. <?php
  2. $liczba = rand(1,30);
  3. $sql = mysql_query("insert into numerek values(NULL, '".$liczba."'");
  4. if($sql) {} else mysql_error();
  5. ?>


Wszystkie pieknie ladnie, ale zeby to sie zrobilo to trzeba uzyc tego crona wiec czy zawartosc tego pliku wystarczy nazwa cron-[19].php ? Jesli nie to poprosze o jakies wskazowki ..
dtb
nie wiem dokladnie o po co ci to, ale moje rozwiazanie byc moze jest prostrze.
za kazdym gdy strona jest otwierana to losuj liczbe od nowa, a generator liczb losowych inicjuj dzisiejsza data, np. liczba 13112006 (srand" title="Zobacz w manualu php" target="_manual)

  1. <?php
  2. srand((int)date('Ymd'));
  3. $wynik = rand(1, 30);
  4. ?>


efekt? kazdego dnia bedziesz mial jakas losowa liczbe z przedzialu od 1 do 30
M45t3r
a co zrobisz zeby o okreslonej godzinie numerek sie zmienial ?
thornag
Opisz problem troche szerzej. Jesli chodzi tylko o to zeby sie numerek zmienial o okreslonej godzinie, to zapisz go do bazy danych(czy gdziekolwiek) wraz z czasem waznosci. Przy requescie sprawdzaj czy sie numerek wyexpirowal. Jesli tak to go zmien, jesli nie to pozostaw.

Napisz dokladniej po co Ci to, wtedy jakas koncepcja wyplynie smile.gif
M45t3r
słyszeliscie o czyms takim jak "szczesliwy numerek" w szkolach ? jesli Twoj numerek w dzienniku wypadnie, jestes zwolniony z odpowiedzi - to tyle smile.gif. I wlasnie ten numerek ma sie losowac codziennie o 19:00 smile.gif. Pomysl kolegi @dtb jest calkiem dobry .. trzeba by to tylko dopracowac zeby ten numerek zmienil sie o 19, a ja niestety bladego pojecia nie mam jak to zrobic :/
thornag
No tak moj sposob powiedzie sie tylko jesli ktos weejdzie na strone w okreslony czasie. Najlepiej jest wiec uzyc Crona do tego. Z jakiego serwera korzystasz ? Macie w szkole jakis postawiony, wykupiliscie, darmowy ?

Najlepiej skontaktuj sie z dzialem pomocy waszego hostingu i zapytaj tam jak uruchomic CRONa, w home.pl jest np dosc wygodny czat do zalatwiania tego typu rzeczy.

A pozniej to juz luz, bierzesz skrypt dtb zapisujesz na serwie, i ustawiasz Crona na niego o 18:59 z pominieciem sobot i niedziel smile.gif
M45t3r
konto mamy na serverze miejskim (lubaczow.pl) wyslalem maila do administratora z pyanie o crona i jak narazie nie dostalem odpowiedzi ;/a w panelu do zarzadzania nie mam tej zabawki ...
UDAT
  1. <?php
  2. srand ( (int) date ( "Ymd", time ( )-60*60*19);
  3. ?>
M45t3r
yyy, ale to przypadkiem nie bedzie losowalo co 19h? a ja chce zeby to losowalo o 19:00 smile.gif
dtb
UDAT: tez o czyms takim myslalem
M45t3r: nie bedzie losowalo co 19h tylko o 19.
M45t3r
@dtb:

o 15,51 wstawilem kod:

  1. <?php
  2. srand((int)date( "Ymd",time())-60*60*16);
  3. $wynik = rand(1,30);
  4. echo $wynik;
  5. ?>


i widze: 6 teraz jest 16,25 dalej widze 6, wiec ? jeszcze jedna proba: zmieniam na 19, tak jak bylo i zobaczymy co bedzie ...
UDAT
@M45t3r
To nie zadziała, złe nawiasowanie. Zamiast:
  1. <?php
  2. srand((int)date( "Ymd",time())-60*60*16);
  3. ?>

wstaw:
  1. <?php
  2. srand ( (int) date ( "Ymd", time ( )-60*60*16));
  3. ?>
M45t3r
kurde :/ powiedzmy ze to dziala, ale te liczby strasznie ograniczone sa :/ mozna to jakos inaczej rozwiazac bez crona ?
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.