Seite 1 von 1

Profil URL ändern

Verfasst: 11.08.2007 14:10
von BerSK
Hallo,
Ich habe vor, statt der normalen URL eines Profils:
domain.de/memberlist.php?mode=viewprofile&u=2
-> in domain.de/user/Name zu ändern.

Ich habe den Ansatz gewagt und habe per mod_rewrite die URL passend umgewandelt.

Code: Alles auswählen

RewriteRule ^user/([a-z0-9-]*)$ /memberlist.php?mode=viewprofile&u=$1
Allerdings sieht das Resultat im Moment noch nicht meiner Wünsche aus:
domain.de/user/2

Wie man sieht wird anstatt des Benutzername die User_id angezeigt.
Wenn man das aufruft funktioniert das auch wunderbar, man kommt zu dem Profil.
Allerdings wie kann ich den Benutzernamen ausgeben?
Ich bin der Meinung, dass ich eine SQL Abfrage in der memberlist.php ändern muss, weiß aber nicht wo und was genau.

Desweiteren habe ich noch ein Problem. Durch das mod_rewrite wurde auf dem Profil, was durch domain.de/user/2 aufgerufen wurde, die Links verändert. Sprich domain.de/user/faq.php anstatt domain.de/faq.php.
Wie kann ich den Pfad wieder korrigieren?

Ich verwende das phpbb3 RC4 Board.

Danke im Vorraus!
MFG BerSK

Verfasst: 11.08.2007 14:55
von FatFreddy
Moin!


PhpBB erwartet die Angabe der User-Id. Wenn Du jetzt in der Url den Namen statt der Id haben willst, wird es aufwendig.
Du hast mehrere Möglichkeiten.
Entweder Du übergibst den Usernamen an memberlist.php und im Skript muß die zugehörige ID nachgeschlagen werden
oder
in der htaccess wird die jeweilige Zuordnung Name=>ID für jeden Nutzer fest verdrahtet.

Beides nicht sonderlich schön.

Eine dritte, einfachere Möglichkeit wäre, den Namen und die ID in die ShortUrls zu integrieren. Eventuell so: domain.de/user/ID/name oder domain.de/user/ID-name.
Für phpBB wäre allerdings zur Identifikation nur die ID relevant.


BerSK hat geschrieben:Desweiteren habe ich noch ein Problem. Durch das mod_rewrite wurde auf dem Profil, was durch domain.de/user/2 aufgerufen wurde, die Links verändert. Sprich domain.de/user/faq.php anstatt domain.de/faq.php.
Wie kann ich den Pfad wieder korrigieren?
Indem Du die rule anpaßt:

Code: Alles auswählen

RewriteRule ^/user/([a-z0-9-]*)$ /memberlist.php?mode=viewprofile&u=$1
FatFreddy

Verfasst: 11.08.2007 15:08
von Pyramide
FatFreddy hat geschrieben:PhpBB erwartet die Angabe der User-Id.
Nö: http://www.phpbb.de/profile.php?mode=vi ... u=Pyramide

Verfasst: 11.08.2007 15:14
von BerSK
Mhm ok danke!
Mit der dritten Möglichkeit kann ich zur Not auch gut leben.
Aber: Wie komm ich denn an den Namen?
Doch per SQL? ^^

Denn der Name wird doch in der URL nirgends "erwähnt", im gegensatz zur ID. (viewprofile&u=2)

Verfasst: 11.08.2007 15:21
von FatFreddy
Pyramide hat geschrieben:
FatFreddy hat geschrieben:PhpBB erwartet die Angabe der User-Id.
Nö: http://www.phpbb.de/profile.php?mode=vi ... u=Pyramide
Stimmt, bei profile.php und phpBB2.

Und Du bist sicher, daß das auch bei memberlist.php in phpBB3 so ist?
Da wollte mir die Übergabe des Usenamens nicht gelingen.

FatFreddy