PHP method='POST' bei mod_rewrite

qhil

Captain
Registriert
Apr. 2011
Beiträge
3.119
Hallo zusammen,

ich steh grad ein wenig auf dem Schlauch. Ich habe eine PHP-Seite mit Formular. Diese Seite wird über
Code:
/Bereich/Formular/
aufgerufen. In der .htaccess steht dafür die Regel
Code:
RewriteRule ^bereich/formular/$ ?p=bereich.form [NC]

Das funktioniert auch soweit. Ich möchte nun nach dem Absenden des Formulars dieselbe Seite erneut aufrufen, nur mit dem Unterschied, dass neben der Variablen "p" eine zweite Variable "s" mitgeben werden soll. Nur habe ich keine Ansatz, wie ich das tun kann.

Code:
<form method='POST' action='/Bereich/Forumlar/&s=1'>
funktioniert so nicht. Den Klartext der URL will ich natürlich auch nicht nutzen, da ich bei den kurzen URLs bleiben möchte.
Ich könnte das Problem lösen indem ich eine neue Regel anlege und die Auswertung des Formulars in einer neuen Seite vornehme, aber das fände ich unschön.

Habt ihr noch eine Idee? Mir ist nämlich nicht klar, wie man damit umgeht, da ich noch neu im Thema mod_rewrite bin!

Vielen Dank im Voraus!
 
Müsste es nicht ?s=1 sein?

Edit: Hm Quark meine Web zeit ist auch schon ein bißchen her. ?s=1 müsste es bei Get sein, bzw. auch nur, wenn die Variable statisch so gesetzt wird. Ansonsten sollte der mod_rewrite damit nicht viel zu tun haben. Du gibst einfach Post oder Get an und die URL und dann sollten die Variablen vom Formular entsprechend gesendet werden und bei PHP in $_POST oder $_GET Variable enthalten sein, wenn ich mich richtig erinner.
 
Zuletzt bearbeitet:
Einfach eine weitere RewriteRule anlegen, die den Paramter ebenfalls mit umbiegt, so hast du dort ebenfalls hübsche URLs:
Code:
RewriteRule ^bereich/formular/$ ?p=bereich.form [NC]
RewriteRule ^bereich/formular/(\d)/?$ ?p=bereich.form&s=$1 [NC]
Formular:
Code:
<form method="post" action="/Bereich/Formular/1">
Ungetestet.

Ich weiß jetzt nicht ob \d so akzeptiert wird, sonst nutz einfach [0-9] für Zahlen. Evtl. auch einfach die 1 hardcoden.
 
a) wie über mir sagte, & ist nur um dann nachfolgende Variablen abzugrenzen
b) könntest du beim 2. Durchgang ein <input type="hidden" name="s" id="s" value="Hubabuba" /> ins Formular kleistern ^^
 
Ach, ich hatte da total den Denkfehler drin. Ich prüfe einfach vorher ab, ob $_POST["meineVariable"] gesetzt ist. Ich brauche gar kein "s" mitgeben. Sorry, dass ich eure Zeit verschwendet habe :)
Den beschriebenen Fall werde ich später trotzdem noch benötigen, eben ohne Formular. Somit hab ich nun schon eine Erklärung. Danke euch! :)
 
Zurück
Oben