![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Fragment kodu:
Powyższy kod wyświetla oczywiście ilość rekordów, w których pole login jest równe danej wpisanej w formularzu. W praktyce, przy założeniu, że loginy nie mogą się powtarzać - będzie to 0 (gdy nie ma takiego użytkownika) lub 1 (w przeciwnym wypadku). Gdy np $_POST[login] = nieMaTakiegoUzytkownika to naturalnie zwracane jest 0. Ale... w zakłopotanie wprowadziło mnie to, że gdy w formularzu zrobie kilka spacji ($_POST[login] = " ") albo nie wpisze nic ($_POST[login] = ""), zwracane jest... 1! Dlaczego ? Oczywiście w bazie nie powinno być takiego rekordu. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz co to trim? Wiesz co to SQL Injection. Pierwsze Ci się przyda do pozbycia się nadmiarowych spacji, drugie to podstawa!
-------------------- Google knows the answer...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za zwrócenie uwagi na SQL Injection.
Tak powinno być lepiej:
Natomiast nie zrozumiałem, w jakim kontekście wspomniałeś o trim ? Dlaczego powinno zależeć mi na usunięciu nadmiarowych spacji ? W dalszym ciągu zwracany wynik to 1 i nie wiem dlaczego. Jeżeli dobrze rozumiem, to zapytanie wygląda mniej więcej tak:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
użyj mysql_real_escape_string
co do trima W dodatku po co wyciągasz wszystko? Wyciągnij tylko id tego usera. ;] Ten post edytował fifi209 26.07.2010, 23:28:26 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
W takim razie może nieco inaczej:
Jeżeli w formularzu podam pusty ciąg znaków, albo kilka spacji otrzymuje komunikat, iż konto nie zostało aktywowane. Wskazuje to na to, jakby znaleziono takiego użytkownika w bazie, co jest bez sensu. Zaproponowane mysql_real_escape_string nie rozwiązało tego problemu. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przejrzyj ten temat.
Zadbaj o dane które przychodzą do Ciebie. Gdzie sprawdzasz czy login w ogóle coś zawiera, czy w ogóle istnieje, a jak istnieje to w jakiej formie? Cytat ...Dlaczego powinno zależeć mi na usunięciu nadmiarowych spacji ... Ponieważ powinno Ci zależeć na bezpieczeństwie. poczytaj o SQL Injection raz jeszcze.
Po co pobierasz wszystko? Ogranicz się tylko do loginu i daj limit na 1. Ten post edytował !*! 27.07.2010, 08:02:56 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Przejrzyj ten temat. Zadbaj o dane które przychodzą do Ciebie. Gdzie sprawdzasz czy login w ogóle coś zawiera, czy w ogóle istnieje, a jak istnieje to w jakiej formie? Ponieważ powinno Ci zależeć na bezpieczeństwie. poczytaj o SQL Injection raz jeszcze.
Po co pobierasz wszystko? Ogranicz się tylko do loginu i daj limit na 1. Nie prościej do statusu? Statusu i tak potrzebuje... co do zapytania - zwal na stronę mysql porównanie również hasła ![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:59 |