Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem ze skryptem głosowania, jw
miras
post 13.09.2013, 12:25:38
Post #1





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Witam, napisałem sobie taki skrypt głosowania:

  1.  
  2. if (($_GET['glos']==1) AND (!empty($_GET['id']))) {
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4. $spr = file("inc/glosy.txt");
  5. $linijka=count($spr);
  6.  
  7.  
  8. if ($ip!=$spr[$linijka]-1) {
  9.  
  10. $dane = $ip."\n";
  11. $file = "inc/glosy.txt";
  12. $fp = fopen($file, "a");
  13. flock($fp, 2);
  14. fwrite($fp, $dane);
  15. flock($fp, 3);
  16. fclose($fp);
  17. $info="Twój głos został dodany!";
  18. } else { $info="Głosowałeś niedawno!"; }
  19. echo '<div class="prze_info">'.$info.'</div>';
  20. }



IP mi się zapisują elegancko do pliku, ale coś jest nie tak ze sprawdzaniem chyba czy obecne ip=ostatnio dodane ip.. bo można cały czas spamować i głosować..


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kropamk
post 13.09.2013, 19:24:59
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


Inaczej, tak to sobie wymyśliłem, pewnie trochę na około ale działa
  1. $ip = $_SERVER['REMOTE_ADDR'];
  2. $fname = "glosy.txt";
  3. if (filesize($fname) == 0) {
  4. // jeżeli plik jest pusty to dodaję ip
  5. $dane = $ip . "\n";
  6. $file = "glosy.txt";
  7. $fp = fopen($file, "a");
  8. flock($fp, 2);
  9. fwrite($fp, $dane);
  10. flock($fp, 3);
  11. fclose($fp);
  12. } else {
  13. $file = fopen('glosy.txt', 'r') or die("");
  14. $data = fread($file, filesize('glosy.txt'));
  15. $items = explode("\n", $data);
  16. $search = array_search($ip, $items);
  17.  
  18. if ($search === FALSE) {
  19. $dane = $ip . "\n";
  20. $file = "glosy.txt";
  21. $fp = fopen($file, "a");
  22. flock($fp, 2);
  23. fwrite($fp, $dane);
  24. flock($fp, 3);
  25. fclose($fp);
  26. $info = "Twój głos został dodany!";
  27. } else {
  28. $info = "Głosowałeś niedawno!";
  29. }
  30. echo '<div class="prze_info">' . $info . '</div>';
  31. }


Ten post edytował kropamk 13.09.2013, 19:59:21
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 17:56