Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne]Mod Rewrite - Jak zmienić ID na Nazwe w linku ?
Soulast
post 23.06.2010, 14:15:58
Post #1





Grupa: Zarejestrowani
Postów: 133
Pomógł: 6
Dołączył: 26.10.2009

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


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..:/

Ten post edytował Soulast 23.06.2010, 14:17:07
Go to the top of the page
+Quote Post
erix
post 23.06.2010, 15:06:15
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Soulast
post 23.06.2010, 15:22:59
Post #3





Grupa: Zarejestrowani
Postów: 133
Pomógł: 6
Dołączył: 26.10.2009

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


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. }
Go to the top of the page
+Quote Post
erix
post 23.06.2010, 15:44:39
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No to czeka Cię zarówno przerabianie wszystkich zapytań, jak i modyfikacja wyświetlania linków.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Soulast
post 23.06.2010, 16:10:14
Post #5





Grupa: Zarejestrowani
Postów: 133
Pomógł: 6
Dołączył: 26.10.2009

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


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..

Ten post edytował Soulast 23.06.2010, 16:10:49
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: 14.08.2025 - 06:09