Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]Mod Rewrite - Jak zmienić ID na Nazwe w linku ?
Forum PHP.pl > Forum > Przedszkole
Soulast
Tak jak w temacie w jaki to sposób mogę zmienić w adresie URL przy pomocy mod_rewrite ID na Nazwę ?
Zauważyłem że sporo to stron już jakoś posiada, czytałem sporo o mor rewrite ale dalej nie wiem jak to zrobic.

Obecnie napisałem oto taki kod w .htaccess

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on
  3. RewriteCond %{REQUEST_FILENAME} -f [OR]
  4. RewriteCond %{REQUEST_FILENAME} -d
  5. RewriteRule .+ - [L]
  6. RewriteRule ^([^/]+)$ index.php?m=user&op=view&account=$1 [QSA,L]
  7. </IfModule>


Działa on obecnie bez problemowo www.mojastrona.com/(id użytkownika) a próbuje zrobić coś na zasadzie www.mojastrona.com/(nazwa użytkownika) ...

Mam wrażenie że to banalnie proste..:/
erix
Hmm, regułki są OK, tylko pozostaje jeszcze kwestia modyfikacji skryptu tak, aby generował nowe schematy linków oraz je obsługiwał (wyciąganie po nazwie, nie po ID).

Zależy, jaki masz skrypt.
Soulast
nie wiem co do konca napisac o skrypcie ale jest on oparty na emulacji register_globals off

i część odpowiadająca za wyłowanie id użytkownika mniej więcej wygląda tak:

  1. function view($account){
  2. global $config;
  3. if(!$account){
  4. error("Invalid Member");
  5. }
  6. $member=mysql_query("SELECT *,DATE_FORMAT(joined,'%M %d, %Y') as \"Joined\" FROM members WHERE id='$account'");
  7. $member=mysql_fetch_array($member);
  8. if(!$member[id]){
  9. error("Invalid ID");
  10. }
erix
No to czeka Cię zarówno przerabianie wszystkich zapytań, jak i modyfikacja wyświetlania linków.
Soulast
Jak to zwykle banał.

patrząc na swój kod wystarczyło zmienić id na name w zapytaniu sql....

a dokładnie:

  1.  
  2. function view($account){
  3. global $config;
  4. $add[comment] = str_replace ('\'', '`', $add[comment]);
  5. if(!$account){
  6. error("Invalid Member");
  7. }
  8. $member=mysql_query("SELECT *,DATE_FORMAT(joined,'%M %d, %Y') as \"Joined\" FROM members WHERE name='$account'");
  9. $member=mysql_fetch_array($member);
  10. if(!$member[name]){
  11. error("Invalid ID");
  12. }


Działa bez problemowo..
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.