Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sprawdzanie czy w POST zostało podane poprawne ip
rift
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.02.2009

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


Witam, mam takie pytanie jak napisać funkcje która by sprawdzała ze w podanym polu jest wpisane ip jeżeli nie pokazywało by błąd.
Myślałem żeby zrobić to za pomocą funkcji preg_match ale jeżeli pozwolę na wpisywanie liczb od 0-9 i . to osoba ktora bedzie podawac ip bedzie mogła podac takie ip 999.999.999.999 albo np same kropki wiec mogłby mi ktos napisac jakis przykład jak zabezpieczyc żeby sprawdzało czy podane ip jest prawdziwe.
Pozdrawiam.

Ten post edytował rift 16.02.2009, 23:53:08
Go to the top of the page
+Quote Post
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


wyrażenie regularne:
Kod
'/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/'


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
likemandrake
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

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


Kawałek kodu klasy Zend_Validate_Ip biggrin.gif
  1. <?php
  2. public function isValid($value)
  3.    {
  4.        $valueString = (string) $value;
  5.  
  6.        $this->_setValue($valueString);
  7.  
  8.        if ((ip2long($valueString) === false) || (long2ip(ip2long($valueString)) !== $valueString)) {
  9.            if (!function_exists('inet_pton')) {
  10.                $this->_error();
  11.                return false;
  12.            } else if ((@inet_pton($value) === false) ||(inet_ntop(@inet_pton($value)) !== $valueString)) {
  13.                $this->_error();
  14.                return false;
  15.            }
  16.        }
  17.  
  18.        return true;
  19.    }
  20. ?>


--------------------
serwiswww.pl
Go to the top of the page
+Quote Post
rift
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.02.2009

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


Dzięki za tak szybką odp.

Wszystko ładnie działa.

Pozdrawiam winksmiley.jpg
Go to the top of the page
+Quote Post
likemandrake
post
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

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


A wyrażenie mogłoby być takie np.:

Kod
/^(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))\.){4}$/


Tylko, że przy tym wyrażeniu, do sprawdzanego ciągu tekstowego trzeba na końcu dodać jeden znak kropki, napewno to nie zmniejszy bezpieczeństwa, ale dzięki temu uprościło to nam samo wyrażenie smile.gif

Ten post edytował likemandrake 17.02.2009, 01:27:51


--------------------
serwiswww.pl
Go to the top of the page
+Quote Post
zegarek84
post
Post #6





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


dla tej 3 cyfrowej wersji:
Kod
[1-2][0-5]{2}

nie przejdzie 106-109; 116-119..... 246-249 guitar.gif


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
likemandrake
post
Post #7





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

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


Hmmmm racja smile.gif Taka duża gafa winksmiley.jpg

Poprawione, dodatkowo wprowadziłem kilka dodatkowych zmian

Ten post edytował likemandrake 17.02.2009, 01:16:30


--------------------
serwiswww.pl
Go to the top of the page
+Quote Post
zegarek84
post
Post #8





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


teraz mniejsza happy.gif
Kod
2[0-5]{2}

i teraz:
206-209, 216-219..... 246-249 biggrin.gif winksmiley.jpg


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
likemandrake
post
Post #9





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

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


A daj ty mi spokój tongue.gif:P:P zaraz będzie działało tongue.gif Zmęczenie robi swoje biggrin.gif

Pooooprawione tongue.gif

Ten post edytował likemandrake 17.02.2009, 01:29:25


--------------------
serwiswww.pl
Go to the top of the page
+Quote Post
zegarek84
post
Post #10





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


na forum Excela mi się już nudziło ;p - a że teraz już używam OpenOffice to VBA w Excelu nie wystartuje i mogę tylko formułkami tablicowymi się bawić dlatego się tutaj na PHP przerzuciłem ^-^

Ten post edytował zegarek84 17.02.2009, 01:28:11


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
likemandrake
post
Post #11





Grupa: Zarejestrowani
Postów: 175
Pomógł: 17
Dołączył: 23.06.2006

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


W Twojej regule, przy pomocy [01]?[0-9][0-9]? można wpisać:

00
...
09
000
...
007
008
009

tongue.gif


--------------------
serwiswww.pl
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 Aktualny czas: 21.08.2025 - 08:18