Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]problem z polskimi znakami w url'u
Forum PHP.pl > Forum > Przedszkole
Marr
Witam, mój problem polega na tym, że potrzebuję zrobić linki na stronie zawierające nazwę kategorii, chodzi o to, że ma to być nazwa a nie identyfikator a co za tym idzie mogą się pojawić polskie znaki i spacje. Domyślam się, że mówimy tu o kodowaniu url'a jednak nie wiem co powinienem zastosować i w którym momencie. Jakby ktoś mógł mnie naprowadzić to byłbym wdzięczny. Mój kawałek kodu wygląda tak:

  1. <?php
  2. $zawartosc = $_GET["id"];
  3. $urlKategoria =$_GET["category"];
  4. $urlTytul = $_GET["title"];
  5.  
  6. if (!isset($_GET["title"])){
  7. $mode = 1;
  8. }else {
  9. $mode = 2;
  10. }
  11.  
  12. switch ($mode)
  13. {
  14.    case 1:
  15.    $zapytanie = mysql_query ("SELECT title FROM category LEFT JOIN (content) ON ( category.id = content.kat_id )WHERE nazwa = '$urlKategoria'");
  16.    while($rekord = mysql_fetch_assoc ($zapytanie)){
  17.    echo $rekord['title'].'<br />';
  18.    }
  19.    break;
  20.    case 2:
  21.    echo 'widok tresci';
  22.    break;
  23. }
  24. ?>


i coś takiego listuje mi zawartość kategorii administracja, jednak np. "Kategoria główna" już nie ;/ Jest na to jakaś rada?
Black-Berry
Po 1. to bardzo zły pomysł żeby w linkach były jakiekolwiek polskie znaki.

Po 2. Sprawdz jaką wartość zwraca Ci
  1. <?php
  2. echo $_GET["category"];
  3. ?>
sowiq
3. Poczytaj o SQL Injection, żebyś kiedyś gorzko nie zapłakał smile.gif
Marr
właśnie naczytałem się, że do pozycjonowania podobno się przydaje... a jeżeli nie to jak miałbym zrobić coś takiego:
w bazie mam kategorię zawierającą polskie znaki, (wyświetlam ją sobie powiedzmy w widoku artykułu, polskie znaki potrzebne) a przy linkowaniu powiedzmy, że ich nie chciałbym sobie mieć więc jak miałbym usuwać polskie znaki?



EDIT: o sqlinjection wiem conieco, jednak gdzieś mi umknął aspekt o kodowaniu url'ów..
sowiq
Cytat(Marr @ 19.02.2009, 13:12:28 ) *
więc jak miałbym usuwać polskie znaki?
str_replace(), strtr()

Cytat(Marr @ 19.02.2009, 13:12:28 ) *
EDIT: o sqlinjection wiem conieco, jednak gdzieś mi umknął aspekt o kodowaniu url'ów..
Nie chodzi o kodowanie URL. Zobacz jak będzie wyglądało Twoje zapytanie jeśli wywołasz skrypt w podobny sposób
Kod
skrypt.php?category=1%27%20OR%20%271%27%20=%20%271
erix
Cytat
Po 1. to bardzo zły pomysł żeby w linkach były jakiekolwiek polskie znaki.

Zwłaszcza, że praktycznie każda przeglądarka używa innego zestawu znaków do kodowania polskich krzaczków w URL.

Cytat
EDIT: o sqlinjection wiem conieco,

Jest przyklejony odpowiedni wątek.
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.