Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwarka ceny od - do
sigal2006
post 28.03.2012, 08:59:00
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 17.02.2010

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


Napisałem sobie bardzo prosty skrypcik wyszukiwania

  1.  
  2. $cenaod=$_GET['cenaod'];
  3. $cenado=$_GET['cenado'];
  4.  
  5. if($cenaod && $cenado){$wpiscenaoddo="AND ogl_cena BETWEEN '".$cenaod."' AND '".$cenado."' ";}
  6. elseif($cenaod){$wpiscenaoddo="AND ogl_cena BETWEEN '".$cenaod."' AND '100000000000' ";}
  7. elseif($cenado){$wpiscenaoddo="AND ogl_cena BETWEEN '0' AND '".$cenado."' ";}
  8. else{$wpiscenaoddo="";}
  9.  
  10.  


oczywiście $wpiscenaoddo wpisuje odpowiednie dane do sql_select.

Jak dodane cenę tylko górną $cenado jest ok , problem pojawia się jednak jest jak chce pobrać rekordy w cenach od do oraz tylko od

może ktos mi poriadzi gdzie jest błą albo może jaką inną metodą mogę wykonać coś takiego próbowałem z operatorami matematycznymi ale nei działało

Ok doszedłem sam typ pola sql był Text zamiast INT
Go to the top of the page
+Quote Post
Fifi209
post 28.03.2012, 12:58:44
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


W dodatku do zapytania podajesz jako string bo w cudzysłowach ;-)

Skrypt podatny na SQL Injection


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
sigal2006
post 30.03.2012, 08:41:25
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 17.02.2010

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


czyli jak zmienić aby było bardziej bezpieczne podaj tylko przykład sma sobie dalej poradzę
Go to the top of the page
+Quote Post
MatKus
post 30.03.2012, 14:09:22
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 3
Dołączył: 27.08.2008

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


Po pierwsze, zabezpiecz się przed SQL Injection i podobnymi sprawami. Nigdy nie wstawiaj na żywca danych z formularzy czy ciasteczek, bo ktoś złośliwy ci wstawi własny fragment kodu do zapytania i namiesza.

  1. $cenaod=(float)$_GET['cenaod']; // upewniamy się, że ktoś nie wpisał ceny "abc" albo, co gorsza, jakiegoś kodu SQL do wykonania
  2. $cenado=(float)$_GET['cenado'];
  3.  
  4. $wpiscenaoddo='';
  5. if ($cenaod!=0) $wpiscenaoddo.='AND ogl_cena>'.$cenaod;
  6. if ($cenado!=0) $wpiscenaoddo.='AND ogl_cena<'.$cenado;


albo opcja 2, w tym wypadku mniej zalecana, bo ceny to liczby i tak też należało by je traktować, ale w przypadku typowego powinno lepiej działać:

  1. $cenaod=$_GET['cenaod'];
  2. $cenado=$_GET['cenado'];
  3.  
  4. $wpiscenaoddo='';
  5. if ($cenaod!=0) $wpiscenaoddo.='AND ogl_cena>"'.mysql_real_escape_string($cenaod).'"';
  6. if ($cenado!=0) $wpiscenaoddo.='AND ogl_cena<"'.mysql_real_escape_string($cenado).'"';
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: 28.03.2024 - 19:12