Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem ze skryptem głosowania, jw
miras
post
Post #1





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

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


Witam, mam skrypt głosowania, jest w nim taki problem, że czy IP jest zapisane w pliku czy go nie ma to i tak wyskakuje komunikat "głosowałeś niedawno"..

  1.  
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. $spr = file("inc/glosy.txt");
  4.  
  5.  
  6. if(in_array($ip,$spr)) {
  7.  
  8. $dane = $ip."\n";
  9. $file = "inc/glosy.txt";
  10. $fp = fopen($file, "a");
  11. flock($fp, 2);
  12. fwrite($fp, $dane);
  13. flock($fp, 3);
  14. fclose($fp);
  15. $info="Twój głos został dodany!";
  16. } else { $info="Głosowałeś niedawno!"; }


dzięki z góry!
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Tak w ogóle to nie ma sensu już się bawić w fopen fwrite fclose etc. Zastąp to funkcją file_put_contents() z PHP5
Go to the top of the page
+Quote Post
miras
post
Post #3





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

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


z tego, co się orientuje to file_put_contents pobiera całą zawartość strony/pliku np. do zmiennej także nie rozumiem w czym mi to tutaj pomoże?
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


file_put_contents - zapisuje
file_get_contents - pobiera
Go to the top of the page
+Quote Post
miras
post
Post #5





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

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


racja, sorki (IMG:style_emoticons/default/wink.gif) już sprawdzam i daje znać czy działa..

no ok.. "zaktualizowałem" swój kod, ale tutaj nie w zapisywaniu jest problem...


  1. $ip = $_SERVER['REMOTE_ADDR'];
  2. $spr = file("inc/glosy.txt");
  3.  
  4.  
  5.  
  6. if(in_array($ip,$spr)) {
  7.  
  8. $dane = $ip."\n";
  9. $file = "inc/glosy.txt";
  10. $current = file_get_contents($file);
  11. $current .= $ip."\n";
  12. file_put_contents($file, $current);
  13. $info="Twój głos został dodany!";
  14. } else { $info="Głosowałeś niedawno!"; }
  15.  
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Masz niesamowity blad logiczny..... Pozwalasz na glosowanie jesli in_array zwroci true, czyli wtedy, gdy koles juz glosowal. No przeciez ma byc na odwrot.... :/
2) file() zwraca wiersze z enterem na koncu wiec Twoje IP nigdy nie bedzie pasowalo. Zajrzyj do manuala i zobacz co zrobic by file() zwracalo wiersze bez enterow na koncu
Go to the top of the page
+Quote Post
miras
post
Post #7





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

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


@@@ dzieki, już działa.

Ten post edytował miras 21.09.2013, 17:42:54
Go to the top of the page
+Quote Post

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: 23.08.2025 - 16:25