![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Napisałem taki oto szkielet skryptu weryfikacji adresu email:
Kod działa poprawnie. Problem powstaje w momencie, kiedy chcę sprawdzić poprawność zmiennych, np. funkcją is_int. Za każdym razem funkcja zwraca wartość false. Dlaczego tak się dzieje? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc, tylko nie rozumiem jednego. Jeżeli przesyłam dane z formularza to bezproblemowo mogę użyć funkcji is_int
Cytat Nie sądzę by w tym przypadku konwersja do int spełniała swoją rolę, bo to nie zweryfikuje danych z GET. Jeśli użytkownik spreparuje link i da np. 12rt6897 to konwersja do int zwróci 12. Z drugiej jednak strony jeżeli funkcja utnie część kodu spreparowanego przez użytkownika to kod będzie niekompletny i na którymś etapie także zostanie zgłoszony błąd |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc, tylko nie rozumiem jednego. Jeżeli przesyłam dane z formularza to bezproblemowo mogę użyć funkcji is_int Z drugiej jednak strony jeżeli funkcja utnie część kodu spreparowanego przez użytkownika to kod będzie niekompletny i na którymś etapie także zostanie zgłoszony błąd Jak wiesz PHP automatycznie nadaje typ zmiennej.
Poza tym funkcja substr() jak można przeczytać w manualu operuje na stringach i zwracaną wartością jest również string. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Mogę się mylić bo nie potrafię w manualu znaleźć tej informacji, ale zmienne POST i GET są zawsze stringami. Zatem takie przypisane zwróci również string(3) "123". Nawet jeśli wartość w formularzu będzie przypisana bez cudzysłowów, w taki sposób:
Znalazłem jeszcze inny sposób na zwalidowanie integera, ale tylko od PHP5.2: użycie funkcji filter_var z rozszerzenia filter: Tej funkcji już się nie da oszukać spreparowanym kodem, bo zwróci false. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 15:50 |