Fehler in aktueller mx-mod_rewrite ?

Begonnen von m-t, 06 März 2010, 03:00:00

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

m-t

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 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.