Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skryptu wpisywania jednokrotnie liczby
slawekjocker
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 28.03.2011
Skąd: Krk

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


Czesc prosil bym was abyscie ten skrypt: <?php
echo rand(1,100);
?>

zamienili na taki że można tylko z jednego ip 1 raz dziennie wylosować liczbę.


Pomoże ktoś?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Z uwagi na to, że szukasz jakiegoś gotowego skryptu to proszę:

  1.  
  2. /* Funkcja zwraca losowy numer z zakresu 1-100. Jeśli z danego IP już otrzymano tego dnia numer - zwraca false
  3.  * (działa na zasadzie plików. Pliki te mogą służyć także jako LOG */
  4. function getRandomNumber() {
  5. $date = new DateTime();
  6. $file = 'jakis/folder/tymczasowy/' . $date->format('Ymd') . '.txt'; // nazwa pliku na podstawie danego dnia (z określonym folderem)
  7.  
  8. $number = rand(1,100); // losujemy liczbę
  9.  
  10. if(file_exists($file)) { // jeśli tego dnia ktoś już losował liczbę
  11. if(strstr(file_get_contents($file),'*' . $_SERVER['REMOTE_ADDR'] . '*') !== false) // sprawdzamy czy aktualne IP już losowało
  12. return false; // zwracamy false jeśli losowało lub zapisujemy IP aby przy następnej próbie było wiadomo że ten IP losował
  13. file_put_contents($file,'*' . $_SERVER['REMOTE_ADDR'] . '* - wylosowana liczba: ' . $number . "\n",FILE_APPEND);
  14. } else { // jesli nie ma pliku zapisujemy IP
  15. file_put_contents($file,'*' . $_SERVER['REMOTE_ADDR'] . '* - wylosowana liczba: ' . $number . "\n");
  16. }
  17.  
  18. // Zwracamy wylosowaną liczbę
  19. return $number;
  20. }
  21.  
  22. $number = getRandomNumber();
  23.  
  24. if($number === false)
  25. echo 'Losowałeś już w tym dniu liczbę!';
  26. else
  27. echo 'Twoja wylosowana liczba to: '.$number;


jest to przykładowa funkcja, która będzie Ci takie liczby generować. To jest podstawa (idea), którą możesz sobie przerabiać i rozbudowywać.

Działa na plikach, zapisuje do plików adresy IP, które już losowały i dodatkowo jaką liczbę wylosowano - tak więc mogą służyć jako coś w rodzaju LOGa. Jest to oczywiście tylko moja propozycja "na szybko" (IMG:style_emoticons/default/wink.gif)

Skrypt można przerobić tak, że danego dnia po pierwszym wylosowaniu liczby, funkcja będzie zwracała potem dokładnie tą liczbę czyli:

1. pierwsze wejście z danego IP - losowana jest i zwracana liczba - na przykład 88
2. drugie i każde kolejne wejście tego samego dnia - zwracana jest liczba 88 (zapisana dla danego IP)

Można to także zrobić na bazie danych jak wspominali moi przedmówcy
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 16:16