Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql] Apostrof w pasku adresu
Forum PHP.pl > Forum > PHP
banki
Witam,

mam problem i dość długo się z nim męczę.

Mam adres strony adres.pl/1,1-Wydarzenia sa tam 2 zmienne, pierwsza z cyfr to numer kategorii a druga to cyfra do stronicowania, obie pobierane za pomocą GET

Jeśli zmienię adres na adres.pl/'1,1-Wydarzenia nic szczególnego sie nie dzieje, po prost nie wyświetlają się artykuły z tej kategorii

jeśli zaś do adresu dodam apostrof w innym miejscu, i tylko w tym adres.pl/1,'1-Wydarzenia wyświetla mi się błąd:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\WebServ\httpd\adres.pl\kategoria_91.php on line 32

Nie chciałbym aby taki błąd się wyświetlał, co moge na to poradzić? Z góry dzięki za pomoc


Dodam jeszcze że tej zmiennej przy której wywala się błąd ($str) używam do takiego zapytania:

$limit = 18;
$limit2 = ($str*$limit-$limit);
$lista = mysql_query("SELECT * FROM artykul WHERE kategoria = '$kat' ORDER BY data_66 DESC LIMIT $limit2, $limit");
banki
Próbowałem już użyć addslashes() ale nie działa to jeśli ktoś dopisze do paska adresu ten apostrof, no chyba że źle tej funkcji używałem. Gdzie jej użyć? Przy pobieranej zmiennej GET?
Turson
Sprawdzaj czy zmienna z $_GET jest liczbą całkowitą, rzutuj a najlepiej zainteresuj się PDO
wujek2009
  1. (....)
  2.  
  3. $kat = (Integer) $_GET['kategoria'];
  4. $strona = (Integer) $_GET['strona'];


Jeśli wiesz, że dane MUSZĄ być wartościami liczbowymi to zrób tzn. rzutowanie - ktoś kto wpiszę inną wartość niż cyfra to wówczas $kat/$strona zwróci Ci zero.
Poza tym już na etapie budowania regułek w .htaccess możesz zdefiniować jakie znaki mogą wejść na wejście - http://sf.jogger.pl/2007/05/02/mod-rewrite-w-przykladach/
sajegib
a nie przypadkiem (int) ?
banki
dzięki wujek, troche mi to pomogło, zrobiłem coś takiego i apostrofy w pasku adresu nie sa raczej straszne

$kat = mysql_escape_string($_GET["kat"]);
$str = (integer)($_GET["str"]);
if($str<="0") { $str="1"; }

gdy integer dawało wynik 0 to tez byl blad, ale if pomogło smile.gif

myślicie ze to dobre rozwiązanie? adresy plików php dalej są ukryte
Damonsson
Nie.

Używaj PDO lub MySQLi
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.