![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 6.06.2004 Skąd: Zielona Gora Ostrzeżenie: (0%) ![]() ![]() |
Witam
wiem ze brzmi to troche dziwnie, ale ... Sytuacja wyglada nastepujaco: jesli wysylam w formularzu z pola input zmienna to w globalnej zmiennej $_POST i $_GET jest ona traktowana jako string. Czy istnieje jakaś wbudowana funkcja sprawdzajaca czy zawartosc tej zmiennej (np. $_GET['a'] ) jest typu integer ![]() Wiem o istnieniu funkcji is_int() ale ona powie ze to nie jest int tylko string. moj sposob na rozwiazanie tego problemu to narazie:
takie coś działa ale chciałbym wiedzieć czy nie istnieje jakiś wbudowany mechanizm. z gory dzieki za pomoc -------------------- "Grunt to Bunt"
|
|
|
![]() |
![]()
Post
#2
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 6.06.2004 Skąd: Zielona Gora Ostrzeżenie: (0%) ![]() ![]() |
Cytat(bela_666 @ 2005-12-02 21:18:51) to prawie to is_numeric sprawdza czy string jest liczba, ale np 3.5 tez potraktuje jako liczbe, a mi chodzi o to rzeby sprawdzic czy to jest int. -------------------- "Grunt to Bunt"
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
A to chodzi? -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 6.06.2004 Skąd: Zielona Gora Ostrzeżenie: (0%) ![]() ![]() |
Cytat(scarface @ 2005-12-02 21:38:10)
A to chodzi? wiem ze w takiej formie to zadziala ale sproboj zrobic to dla zmiennej globalnej $_POST albo $_GET (np: $_POST['a'] ) u ciebie w przykladzie $string = 3.5 sproboj $string = "3.5" bo w wlasnie takiej formie otrzymasz dane z formularza -------------------- "Grunt to Bunt"
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 6.06.2004 Skąd: Zielona Gora Ostrzeżenie: (0%) ![]() ![]() |
Cytat(scarface @ 2005-12-02 21:50:01) sorki chyba czegos nie rozumiem ;( jak moze mi to pomoc ? jak mam tego uzyc ? -------------------- "Grunt to Bunt"
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
I teraz zostaną wywalone "" z $_POST co umożliwi rozpoznanie czy dana liczba jest int czy nie. O to chodziło prawda? -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 15 Dołączył: 29.04.2005 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
nie trzeba juz sprawdzać, od razu dostajesz inta "is_numeric sprawdza czy string jest liczba, ale np 3.5 tez potraktuje jako liczbe, a mi chodzi o to rzeby sprawdzic czy to jest int. " no bo 3.5 to też liczba ![]() ============ to wlasciwie jest bez sensu bo zmienna w php nie moze posiadać kilku typów na raz, albo int albo string, bool czy coś innego! Ten post edytował Lars 2.12.2005, 22:05:05 -------------------- (\.../) This is Bunny. Copy and paste bunny into
(O.o) your signature to help him gain world domination. (> <) Zanim zapytasz | Też się przyda | Pomogłem ci? Kliknij "Pomógł" |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 6.06.2004 Skąd: Zielona Gora Ostrzeżenie: (0%) ![]() ![]() |
to juz by bylo to czego szukalem ale jeszcze pozostaje kwestia zabespieczenia tego jakos.
sprobojcie uruchomic powyrzszy przyklad dla 3a jak zabezpieczyc sie przed czyms takim ![]() -------------------- "Grunt to Bunt"
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 15 Dołączył: 29.04.2005 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Cytat(R3B3L @ 2005-12-02 21:05:53) to juz by bylo to czego szukalem ale jeszcze pozostaje kwestia zabespieczenia tego jakos. sprobojcie uruchomic powyrzszy przyklad dla 3a jak zabezpieczyc sie przed czyms takim ![]() jeżeli chodzi o mój post to w tym przypadku dostaniesz 3 - inta. ciągle źle? -------------------- (\.../) This is Bunny. Copy and paste bunny into
(O.o) your signature to help him gain world domination. (> <) Zanim zapytasz | Też się przyda | Pomogłem ci? Kliknij "Pomógł" |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 6.06.2004 Skąd: Zielona Gora Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Lars @ 2005-12-02 22:03:09)
nie trzeba juz sprawdzać, od razu dostajesz inta "is_numeric sprawdza czy string jest liczba, ale np 3.5 tez potraktuje jako liczbe, a mi chodzi o to rzeby sprawdzic czy to jest int. " no bo 3.5 to też liczba ![]() ============ to wlasciwie jest bez sensu bo zmienna w php nie moze posiadać kilku typów na raz, albo int albo string, bool czy coś innego! wiem ze mozna to zrobic to w ten sposob. ale chodzi mi o to zeby nie przekonwertowywac tej zmiennej a tylko sprawdzic czy ma odpowiedni typ. przyklad ktory podalem na poczatku dziala ale szukam jakiegos wbudowanego mechanizmu. Ten post edytował R3B3L 2.12.2005, 22:13:16 -------------------- "Grunt to Bunt"
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 15 Dołączył: 29.04.2005 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
cuś takiego? -------------------- (\.../) This is Bunny. Copy and paste bunny into
(O.o) your signature to help him gain world domination. (> <) Zanim zapytasz | Też się przyda | Pomogłem ci? Kliknij "Pomógł" |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 6.06.2004 Skąd: Zielona Gora Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Lars @ 2005-12-02 22:12:38)
cuś takiego? to akurat zadziala dla $var = 3; ale dla $var = "3"; juz nie zadziala, a dane z formularza dstajemy w lasnie w tej drugiej wersji, nawet jesli w polu input wpisalismy 3 to wartosc $_POST['var'] bedzie rowna "3" -------------------- "Grunt to Bunt"
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Możesz najpierw pojechać $string htmlspecialchars" target="_blank wywalić wszystkie znaki prócz liczb i kropek z niego (2.5). Niestety takiego wyrażenia Ci nie ułożę bo nie czuje się mocny z regami.
Jest rozwiązanie którego nie polecam, jeśli nie chcesz komunikatu o błędzie wstaw przed eval => @ wtedy błąd będzie, ale nie będziesz go widział... @DeyV - Ta... i zawsze wychodzi, że najlepsze jest naprostsze.. :] Pozdrawiam! -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#16
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jak tam zawsze rzutuje i dodaje slasze i działa. Tu nie ma żadnej filozofii.
-------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 6.06.2004 Skąd: Zielona Gora Ostrzeżenie: (0%) ![]() ![]() |
Cytat(scarface @ 2005-12-02 22:31:12) Możesz najpierw pojechać $string żeby się zabezpieczyć, a potem wyrażeniami regularnymi <a href="http://pl.php.net/preg_replace">preg_replace wywalić wszystkie znaki prócz liczb i kropek z niego (2.5). Niestety takiego wyrażenia Ci nie ułożę bo nie czuje się mocny z regami. Jest rozwiązanie którego nie polecam, jeśli nie chcesz komunikatu o błędzie wstaw przed eval => @ wtedy błąd będzie, ale nie będziesz go widział... Pozdrawiam! żeczywiście innego wyjścia chyba nie ma. myślałem że istnieje jakiś gotowy mechanizm który rozwiązał by ten problem. wszystkie te operacje o których mówisz będe musiał zrobić dla jakiejś zmiennej pomocniczej bo chodzi mi o to zeby sprawdzic czy ta znienna ma odpowiedni typ ale nie modyfikowac jej. THX 4 ALL -------------------- "Grunt to Bunt"
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
a wiec najpierw sprawdzasz czy jest numeric ( is_numeric() )
A następnie sprawdzasz, czy ciąg nie zawiera kropki. I masz pewność, że jest to int, lub nie. Ewentualnie można sprawdzić jeszcze wielkość wprowadzonej liczby, by nie przekroczyć zakresu int ![]() scarface - a coś ty za bzdury z tym eval wymyślił? Tak bardzo nie lubisz mieć bezpiecznego kodu? -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 476 Pomógł: 1 Dołączył: 5.11.2005 Skąd: Bieruń city Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
a mzoe po prostu ctype_digit" title="Zobacz w manualu php" target="_manual ?
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:25 |