Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem ze skryptem głosowania, jw
miras
post 21.09.2013, 12:17:35
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
 
Start new topic
Odpowiedzi (1 - 6)
Turson
post 21.09.2013, 12:52:25
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 21.09.2013, 13:00:15
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 21.09.2013, 13:04:21
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 21.09.2013, 13:24:07
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 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 21.09.2013, 13:33:43
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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miras
post 21.09.2013, 17:39:38
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
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 - 02:29