Hab da grad auf einer Seite Probleme mit folgendem Code:
<?php
$qrcode= 'http://' . $HTTP_HOST . $REQUEST_URI;
echo "<img src='http://chart.apis.google.com/chart?cht=qr&chs=200x200&choe=ISO-8859-1&chl=$qrcode'>";
?>
Ich hab das auf einigen Seiten im Einsatz, bei der neuesten (mit PragmaMx 0.1.11) wird mir aber immer ein kleiner Fehler angezeigt:
Der Code oben erzeugt eine kleine Grafik mit einem QR-Code (http://de.wikipedia.org/wiki/QR-Code) der aktuellen Seite. Jedesmal beim Einsatz von $REQUEST_URI oder $_SERVER['SCRIPT_FILENAME'] wird aber ein doppelter Slash nach der tld angezeigt.
also: domain.de//modules.php?name=Test
Der Fehler steckt in der includes/mx_modrewrite:
Und zwar ganz unten:
$_SERVER['QUERY_STRING'] = $querystring;
$_SERVER['SCRIPT_FILENAME'] = dirname($_SERVER['SCRIPT_FILENAME']) . '/modules.php';
$_SERVER['PHP_SELF'] = dirname($_SERVER['PHP_SELF']) . '/modules.php';
$_SERVER['SCRIPT_NAME'] = $_SERVER['PHP_SELF'];
if (isset($PHP_SELF)) {
$PHP_SELF = $_SERVER['PHP_SELF'];
}
$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'] . '?' . $querystring;
}
in einer älteren version der datei sind 2 zeilen anders:
$_SERVER["PHP_SELF"] = rtrim(dirname($_SERVER["PHP_SELF"]), '/') . '/modules.php';
und:
$_SERVER['SCRIPT_FILENAME'] = rtrim(dirname($_SERVER['SCRIPT_FILENAME']), '/') . '/modules.php';
mit dieser "älteren" Version funktioniert es teilweise. D.h. der doppelte Slash ist zwar weg, die korrekte "Anzeige" der URL aber leider auch.
domain.de/modules.php?name=Test
Also nochmal zusammengefasst: PragmaMx läuft und die vorhandenen Module werden richtig umschrieben. Was nicht geht ist der Einsatz von $REQUEST_URI oder $_SERVER['SCRIPT_FILENAME'] in eigenen Modulen.