php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.03.2008, 11:14  
Benutzer
 
Registriert seit: 28.07.2007
Beiträge: 38
pPanther
Standard Dynamik mit Mod Rewrite

Halle alle zusammen!

Ich habe eine URL bei der je nach Seite und Benutzeraktion verschiedene GET-Parameter übergeben werden. Das heißt also bei einem Seitenaufruf habe ich 2 Parameter und bei einem anderen Aufruf vielleicht 3 oder 4 usw.
Meine Links sind im Format
PHP-Code:
http://www.meinedomain.de/index;get,1;get,2;get,3 
usw. aufgebaut.
Würde dann bei mir z.B. genau so aussehen:
PHP-Code:
http://www.meinedomain.de/index;f,4;h,18;s,6 
Den Buchstaben f soll er durch farbe, h durch hauptid und s durch subid ersetzen.

Dazu habe ich folgende RewriteRule notiert:
Anm: Bei meiner Rule unterschlägt er mir den Backslash vor .php.
PHP-Code:
RewriteEngine on
RewriteRule 
^([^/;,]+);f,([0-9]+);h,([0-9]+);s,([0-9]+)?$ $1.php?farbe=$2&hauptid=$3&subid=$[QSA,N
Diese Rule funktioniert einwandfrei, wenn alle 3 Parameter übergeben werdern. Aber sobald z.B. die subid fehlt, ersetzt er mir klarerweise nichts. Ebenso, wenn die Get Parameter verdreht wurden.
Wie kann ich das umgehen, bzw. dynamisch machen? Ich habe mir gedacht einfach für jeden Get Parameter ne eigene Rule. In etwa so:
PHP-Code:
RewriteRule ^f,([0-9]+)$ farbe=$1
RewriteRule 
^h,([0-9]+)$ hauptid=$
Aber das funktioniert nicht. Kann mir bitte jemand einen Tipp geben?
__________________
Ich bin gut schon gut, aber böse bin ich noch besser!
pPanther ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.03.2008, 13:26  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo pPanther,

vor dieser Herausforderung stand ich vor zwei Jahren auch mal. Einzig sinnvolle Lösung ist hier, die Namen der Parameter in der URL mitzugeben. Dadurch kannst du beliebige URLs der Form

Code:
http://www.server.com/param1/value1/param2/value2/param3/value3
erzeugen und verarbeiten. Folgendes ist dazu zu tun:

1. Generische RewriteRule schaffen, die dir alles an eine Bootstrap-Datei weiterleitet
2. Filter-Komponente bereitstellen, die dir die Request-URI wieder in einzelne Parameter-Wert-Paare zerlegt. Der Algorithmus an sich ist dabei sehr einfach.

Schau mal auf der Seite in meinem Footer vorbei und lad dir das Demo-Package des aktuellen Releases herunter. Dort findest du eine .htaccess-Datei mit der entsprechenden Rewrite-Rule und in der Datei apps/core/filter/pagecontrollerRewriteRequestFilter.php die Implementierung für dieses Problem. Unter http://www.adventure-php-framework.o...st_filter.html findest du die API-Doku.

Solltest du noch Fragen dazu haben, meld dich einfach.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 15.03.2008, 14:15  
Benutzer
 
Registriert seit: 28.07.2007
Beiträge: 38
pPanther
Standard

Danke für deine Antwort.

Ich hatte bereits Rules, die mir dynamisch ersetzen. Dazu übergab ich genau wie du beschrieben hast, den Namen der Variable einfach im Klartext mit.
Das ist soweit kein Problem. Ich wollte nur einfach noch ne Stufe höher, indem ich Ersetzungen machen lasse OHNE Bezug zum Namen der Get Parameter.
__________________
Ich bin gut schon gut, aber böse bin ich noch besser!
pPanther ist offline   Mit Zitat antworten
Alt 15.03.2008, 20:05  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo pPanther,

dynamische Ersetzung ohne Bezug funktioniert nur dann, wenn die Werte der Parameter von unterschiedlichem Typ sind und du dynamisch die Zuordnung wiederherstellen kannst. Möchtest du jedoch eine generische Lösung haben, die für alle Module innerhalb deiner Applikation funktionieren, bist du jedoch auf ein dynamisches Mapping angewiesen.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 16.03.2008, 07:15  
Benutzer
 
Registriert seit: 28.07.2007
Beiträge: 38
pPanther
Standard

Und das scheint mir im Moment noch ein wenig zu kompliziert zu sein für mich.
Ich bin noch nicht so weit. Aber danke für deine Tipps. Wenn die Zeit gekommen ist, werde ich mich auch genauer mit diesem Thema befassen.
__________________
Ich bin gut schon gut, aber böse bin ich noch besser!
pPanther ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mod Rewrite Allgemeinplätzchen nikosch Server, Hosting und Workstations 2 10.05.2008 01:35
Mod Rewrite unter IIS Plague PHP Tipps 2008 7 02.05.2008 22:18
Mod Rewrite in Shop Software einbauen Pseiko Beitragsarchiv 17 18.03.2008 14:48
Mod Rewrite - nur für Adressen größer als ? tayke Server, Hosting und Workstations 9 02.05.2007 14:30
Mod Rewrite Problem mit PUNKT becks123 Server, Hosting und Workstations 1 31.01.2007 21:48
rewrite von .php - Möglich? tayke Server, Hosting und Workstations 8 29.11.2006 17:02
rewrite Marc Server, Hosting und Workstations 5 29.04.2006 12:15
index.php?site=* => ./* (rewrite) PHS Server, Hosting und Workstations 15 15.06.2005 18:01
Neuer Strato Server apache 2 Mod Rewrite & htaccess Prob Stemmi Server, Hosting und Workstations 4 02.05.2005 00:29
domain umleiten mit rewrite wurtzel Server, Hosting und Workstations 2 05.03.2005 02:09
Free Webspace mit Mod Rewrite peng Beitragsarchiv 6 15.02.2005 11:44
[Erledigt] URL Rewrite PHP-Fortgeschrittene 3 06.02.2005 16:54
[Erledigt] mode rewrite, was ist möglich? Server, Hosting und Workstations 3 13.12.2004 09:34
[Erledigt] mod rewrite problem Server, Hosting und Workstations 0 20.07.2004 11:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mod_rewrite get parameters mitgeben, mod rewrite php framework, mode rewrite iis, modrewrite bestimmten get parameter filtern

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.