PHP-Script + RewriteRule + form
Sightz
- php
Hallo, ich bastel im Moment für einen Freund eine Seite:
Um nicht jedes PHPscript extra erweitern zu müssen hab ich mir mein eigenes kleines geschrieben:
include header
include site
include footer
Aufruf ist dabei wie folgt: site.php?site=index.php
Damit wird an 2. Stelle bei include site eben die index.php geladen. Um jetzt nicht noch überall die Links von index.php auf site.php?site=index.php bzw xy.php auf site.php?site=xy.php ändern zu müssen habe ich mir folgende RewriteRule geschrieben:
RewriteEngine on
RewriteBase /Webprojekt_NEWP/wp_from_scratch/dyn/
RewriteRule !site.php - [C]
#xy.php => site.php?site=xy.php
RewriteRule (.*)/(.*.php) $1/site.php?site=$2 [QSA]
http://bjcolt.dyndns.org/Webprojekt_NEWP/wp_from_scratch/dyn/phpBB2/index.php
(Die Seite läuft lokal, geht also wohl nicht immer :-/)
Das Forum funktioniert auch ganz gut (schaut euch nicht den Quellcode an, ich hatte noch keine Zeit die Templates auszubessern).
Das Bilderscript funktioniert auf den ersten Blick auch super, allerdings sobald man z.B. etwas kommentieren möchte jetzt es aus. Der Fehler ist folgender: Ohne RewriteRule sieht ein HTML-Code-Teil so aus:
<form method="post" action="details.php?image_id=1">
Mit RewriteRule sieht er aber wie folgt aus:
<form method="post" action="site.php">
Ich bin jetzt soeben hoffnungslos überfragt warum das passiert. Und wie man das vermeiden kann. Es soll ja weiterhin die details.php?image_id=1 aufgerufen werden, aber halt in der Form site.php?site=details.php&image_id=1. Aber das würde ja durch die RewriteRule selbst passieren, warum wird dann (automatisch) im Quellcode etwas ersetzt?
Hallo Stefan,
<form method="post" action="details.php?image_id=1">
<form method="post" action="site.php">Ich bin jetzt soeben hoffnungslos überfragt warum das passiert. Und wie man das vermeiden kann. Es soll ja weiterhin die details.php?image_id=1 aufgerufen werden, aber halt in der Form site.php?site=details.php&image_id=1. Aber das würde ja durch die RewriteRule selbst passieren, warum wird dann (automatisch) im Quellcode etwas ersetzt?
vermutlich wird in dem entsprechendem Script "details.php" mit $_SERVER['PHP_SELF'] oder ähnlichem das action-Attribut dynamisch befüllt. Suche nach der entsprechenden Stelle im Quellcode und ändere sie dahingehend ab, daß auch der Query-String miteinbezogen wird. (http://de3.php.net/manual/de/reserved.variables.php#reserved.variables.server)
Gruß aus Berlin!
eddi
Hallo Stefan,
vermutlich wird in dem entsprechendem Script "details.php" mit $_SERVER['PHP_SELF'] oder ähnlichem das action-Attribut dynamisch befüllt. Suche nach der entsprechenden Stelle im Quellcode und ändere sie dahingehend ab, daß auch der Query-String miteinbezogen wird. (http://de3.php.net/manual/de/reserved.variables.php#reserved.variables.server)
Gruß aus Berlin!
eddi
Dankeschön, es war tatsächlich so ähnlich :) Wäre ich nicht drauf gekommen und hätte den Fehler weiter bei der htaccess gesucht :) Vielen Dank. Mal schauen ob in dem Script sonst noch so nette Sachen sind :-/