Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]Skrypt wykonujący się po stronie serwera
Forum PHP.pl > Forum > Przedszkole
vento
Witam. Mam pewien problem i nie wiem jak do niego podejść.
Załóżmy, że jest 3 użytkowników:
Użytkownik A
Użytkownik B
Użytkownik C

Wszyscy troje wchodzą na stronę gdzie ukazuje im się losowanie jakieś liczby. Liczba automatycznie losuje się co np. 10 sekund. Chce, aby liczba wylosowana była u każdego użytkownika taka sama nawet jeżeli wejdzie 500 użytkowników i zacznie się losowanie, to wylosowana liczba będzie u każdego wynosiła np. "5".
Próbowałem użyć
  1. <?php
  2. $los = rand (0, 36);
  3. $wynik = 0;
  4. $wynik = $los;
  5. ?>

Ale wtedy liczba u każdego jest inna, więc gdy później wysyłam ją do javy, aby wykonała animacje losowania liczby to u każdego wypada co innego..

Nie chcę gotowych skryptów tylko jakieś komendy/funkcje które umożliwiają takie rozwiązanie.

Z góry dziękuję za pomoc
Pyton_000
Użyj sesji do tego.

Tak to jest jak się rano kawy nie wypije wink.gif

Oczywiście rozwiązanie poniżej (plik) jest ok, ale jeśli masz BD to tam najbezpieczniej jest trzymać.
Ew. dobrym pomysłem jest też o ile masz jakiś system cache typu Memcached, Redis tam trzymać tą wartość. Niwelujesz tym samym czas trzymania liczby smile.gif
Mlodycompany
Cytat(Pyton_000 @ 17.02.2016, 07:55:46 ) *
Użyj sesji do tego.


sesja w tym przypadku nic nie da. kolega chce aby w kilku przeglądarkach była ta sama liczba.

najprościej użyć do tego pliku. generować taką wartość i zapisywać do pliku, a później tylko odczytywać
vento
Może zrobię tak.
Zrobię nowego użytkownika np. test
Temu użytkownikowi przypisze sesje, która będzie losować liczbę np. w pliku user_random.php
Wylosowana liczba zostanie przeniesiona do random.php po czym "wrzucona" do javascriptu użytkowników.

Zadziała coś takiego?
Pyton_000
a po co takie dziwne rzeczy ?

  1. <?php
  2.  
  3. $filename = md5('liczba.txt');
  4. if(!file_exists($filename) || filemtime($filename) <= time() - 60*5) {
  5. $liczba = mt_rand(1, 100);
  6. file_put_contents($filename, $liczba);
  7. }
  8.  
  9. $liczba = file_get_contents($filename);
vento
Cytat(Pyton_000 @ 17.02.2016, 08:57:25 ) *
a po co takie dziwne rzeczy ?

  1. <?php
  2.  
  3. $filename = md5('liczba.txt');
  4. if(!file_exists($filename) || filemtime($filename) <= time() - 60*5) {
  5. $liczba = mt_rand(1, 100);
  6. file_put_contents($filename, $liczba);
  7. }
  8.  
  9. $liczba = file_get_contents($filename);



Faktycznie działa. Dzięki wielkie!
Mam jeszcze jedną prośbę: mógłbyś mi wytłumaczyć co oznacza ta linijka kodu:
  1. <= time() - 60*5

Znaczy <= rozumiem, ale o co chodzi z "time" jakieś ustawienie czasu kiedy liczba ma sie znowu losować?
Pyton_000
aktualny czas - 5 min
vento
Ok, dziękuję za wytłumaczenie.
Wszystko działa poprawnie.
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.