Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Formularz + adres IP
marcin0077
post 6.03.2010, 21:12:38
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (10%)
X----


Witam

Czy można do zwykłego formularza zrobić aby dodawało adresy IP?

  1. <?php
  2. /*********************************************
  3. * plik formularz.php
  4. *********************************************/
  5.  
  6. $pole1 = trim($_POST['pole1']);
  7. $pole2 = trim($_POST['pole2']);
  8. $pole3 = trim($_POST['pole3']);
  9. $pole4 = trim($_POST['pole4']);
  10. $pole5 = trim($_POST['pole5']);
  11.  
  12. if(empty($pole1) and empty($pole2)) {
  13.  
  14. // prosty formularz
  15. [...Tekst formularza...]
  16. </form>';
  17. }
  18. else {
  19.  
  20. // dane pochodz?ce z formularza
  21. $dane = " 1:".$pole1." 2:".$pole2." 3:".$pole3." 4:".$pole4." 5:".$pole5."<br>";
  22. // przypisanie zmniennej $file nazwy pliku
  23. $file = "baza.txt";
  24. // uchwyt pliku, otwarcie do dopisania
  25. $fp = fopen($file, "a");
  26. // blokada pliku do zapisu
  27. flock($fp, 2);
  28. // zapisanie danych do pliku
  29. fwrite($fp, $dane);
  30. // odblokowanie pliku
  31. flock($fp, 3);
  32. // zamknięcie pliku
  33. fclose($fp);
  34.  
  35. echo "thx<br />";
  36. }
  37.  
  38. ?>


Z góry dziękuje za pomoc

Ten post edytował marcin0077 6.03.2010, 21:13:20
Go to the top of the page
+Quote Post
MateuszS
post 6.03.2010, 21:15:27
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


  1. $ip = $_SERVER["REMOTE_ADDR"];


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
marcin0077
post 7.03.2010, 16:22:24
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (10%)
X----


super, dzięki za ekspresową odpowiedź smile.gif

Jak do tego dodać blokowanie powtórnego głosowania po IP i cookie?
Go to the top of the page
+Quote Post
Wicepsik
post 7.03.2010, 16:42:49
Post #4





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Po wysłaniu formularza dodaj do drugiego pliku tekstowego adresy ip które już głosowały. A potem odczytuj ten plik i sprawdzaj czy osoba o podanym IP już głosowała.


--------------------
Go to the top of the page
+Quote Post
marcin0077
post 7.03.2010, 17:23:04
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (10%)
X----


ok zapisuje mi adresy w ip.txt, ale teraz jak odczytywać i sprawdzać te IP?
Go to the top of the page
+Quote Post
d3f3nd3r
post 7.03.2010, 17:56:07
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 6
Dołączył: 9.08.2008

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


można na kilka sposobów, np. tak:
http://www.php.net/manual/pl/function.fread.php
http://pl.php.net/strpos
Go to the top of the page
+Quote Post
Quantum
post 7.03.2010, 18:09:39
Post #7





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


ja bym to rozwiązał w ten sposób:

  1. // aktualny adres ip odwiedzającego
  2. $current_ip = $_SERVER['REMOTE_ADDR'];
  3.  
  4. // nazwa pliku przechowującego adresy
  5. $ip_filename = 'ip.txt';
  6.  
  7. // odczyt pliku i rozbicie na tablicę po znaku nowej linii
  8. $ip_addresses = file($ip_filename);
  9.  
  10. // dopisanie nowego adresu jeżeli nie istnieje jeszcze na liście
  11. if (!in_array($current_ip, $ip_addresses))
  12. file_put_contents($ip_filename, PHP_EOL.$current_ip, FILE_APPEND);


Ten post edytował sniffer32 7.03.2010, 18:19:42
Go to the top of the page
+Quote Post
marcin0077
post 7.03.2010, 19:45:27
Post #8





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (10%)
X----


ok, dopisuje adresy ale jak teraz blokować głosowanie osobą które już oddały swój głos bo nie mogę do tego dojść ;/
Go to the top of the page
+Quote Post
Quantum
post 7.03.2010, 19:48:35
Post #9





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


  1.  
  2. if (!in_array($current_ip, $ip_addresses))
  3. {
  4. // zapisywanie głosu
  5.  
  6. file_put_contents($ip_filename, PHP_EOL.$current_ip, FILE_APPEND);
  7.  
  8. echo 'głos oddany pomyślnie!';
  9. }
  10. else
  11. {
  12. echo 'już głosowałeś!';
  13. }
  14.  


wystarczy chwilę pomyśleć..
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: 18.07.2025 - 08:44