Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przyjazne linki systemu artykulow
Forum PHP.pl > Forum > PHP
tangor
Witam, piszę teraz system artykulow i utknalem przy przyjaznych linkach. Linki artykulow wygladaja tak: nazwastrony.pl/art.php?id=56
A chciałbym by zamiast art.php?id=56 pojawiał się tytul artykulu. Poczynilem wiec takie kroki. Stworzylem wiersz w tabeli z artykulami w ktorym tytul jest zapisywany bez polskich znakow, a spacja jest zastapiona "-".(skrypt php zamienia to przed wyslaniem danych) . A teraz nie wiem co zrobic dalej.
W skrypcie art.php mam $id = $_GET['id']; . Myslalem zeby jd wyswietlalo sie za nazwa o tak: nazwastrony.pl/tytul-artykulu/6, ale nie wiem jak toi zrobic Pomożecie?
ksenonlogin
Najłatwiej zrobić to tak, by zacząć całość od pliku .htaccess w którym możesz wpisać coś takiego:

[APACHE] pobierz, plaintext
  1. RewriteEngine on
  2. RewriteRule ^.+(website/structure/basic/images/.+)$ $1 [L]
  3. RewriteRule ^.+(public_folder/article_ico.+)$ $1 [L]
  4. RewriteRule ^.+(var/.+)$ $1 [L]
  5. RewriteRule ^.+(website/structure/basic/js/.+)$ $1 [L]
  6. RewriteRule ^.+(website/structure/basic/css/.+)$ $1 [L]
  7. RewriteCond %{REQUEST_FILENAME} !-f
  8. RewriteCond %{REQUEST_FILENAME} !-d
  9. RewriteRule (.*) index.php?$1 [L]
[APACHE] pobierz, plaintext


Oczywiście "RewriteRule" ustaw dla własnych katalogów do których chcesz sięgać lub ustaw na uniwersalne

Potem W PHP możesz podłączyć klasę w której będziesz pobierał elementy swojego URL, tak że adres jest dzielony dzięki zastosowaniu "/" i wrzucany do tablicy, niżej prosta (może nie idealna klasa), ale jakiś punkt wyjścia...

  1. class C_Elements_SEPARATE {
  2.  
  3. public $array_uri;
  4.  
  5. public function __construct($String_URI,$Separate) {
  6. $this -> array_uri = explode($Separate, $String_URI);
  7.  
  8. }
  9. public function M_Array_STRING($Element) {
  10.  
  11. return $this -> array_uri[$Element];
  12. }
  13.  
  14. public function __destruct() {
  15. unset($array_uri);
  16. }
  17.  
  18. }
  19.  
  20. $O_Element_URI = new C_Elements_SEPARATE($_SERVER["REQUEST_URI"],'/');
  21. $Action_URI1 = $O_Element_URI -> M_Array_STRING(1); //element pierwszy, po adresie strony
  22. $Action_URI2 = $O_Element_URI -> M_Array_STRING(2); //element drugi, po adresie strony
  23. $Action_URI3 = $O_Element_URI -> M_Array_STRING(3); //element trzeci, po adresie strony
  24. // i tak dalej i dalej
  25.  


Tak jak mówię to jest tylko rozwiązanie wyjściowe, działa ale jest to na kolanie pisane....
SmokAnalog
Moim zdaniem lepiej jest zarządzać ścieżkami w skrypcie PHP, a nie w .htaccess. Możesz zrobić sobie taki .htaccess:
[APACHE] pobierz, plaintext
  1. RewriteEngine on
  2. RewriteCond %{REQUEST_FILENAME} !-f
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteRule ^(.+)$ index.php?route=$1 [L,QSA]
[APACHE] pobierz, plaintext

Każdy URL w domenie będzie prowadził do index.php, a w $_GET['route'] będziesz miał ścieżkę. Możesz sobie wtedy robić z nią co zechcesz.
tangor
Hej, a jak pobrac dane z tego rekordu z bazy (w ktorym jest tytul artykulu przerobiony) i wrzucic to do adresu?
ksenonlogin
Nie rozumiem dokładnie pytania....

- Drukujesz menu z id i tytułem np. 26-kategoria
- Po kliknięciu na link system pobiera element tablicy, zależy który wtedy taki pobierasz np url/artykuly/26-kategoria czyli drugi element według mojej klasy
- potem to dzielisz tak by pobrać tylko id reszta jest tylko dodatkiem dla dobrego pozycjonowania i przez zapytanie SQL wyświelasz wystkie artykuły które są przypisane do kategorii o id taki i takim

To wszystko, o ile zrozumiałem zapytanie bo jest one zawiłe
tangor
Wielkie dzieki, juz wszysto jest ok, zapomnialem o tablicach php.gif
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.