[BUG 4.8.13 RC2] PHP_SELF ist leer unter XAMPP

Gesperrt
Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

[BUG 4.8.13 RC2] PHP_SELF ist leer unter XAMPP

Beitrag von Oldperl » Di 8. Jun 2010, 21:24

System:
Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
PHP Datenbankerweiterung mysql
Datenbankserver-Version 5.1.41
Installierte PHP-Version 5.3.1
safe_mode Deaktiviert
magic_quotes_gpc Deaktiviert
magic_quotes_runtime Deaktiviert
gpc_order
memory_limit 128M
max_execution_time 60
Deaktivierte Funktionen nichts deaktiviert
Gettext Erweiterung geladen
sql.safe_mode Deaktiviert

Errorlog:
Leer

Habe eine lokale Installation der RC2 unter Win2000 mit XAMPP 1.7.3 und wollte dort ein Plugin installieren. Also URL zum Plugin bzw. zu der install.php des Plugins eingegeben. Es erscheint wie gewünscht der Contenido-Login-Bildschirm. Jedoch nach dem Einloggen erscheint nicht der Installerbildschirm, sondern man wird ganz normal ins Backend eingeloggt.
Nachvollziehbar ist das Ganze mit der RC2 und z.B. dem AMR-Plugin.

Also hab ich mich nun die letzten Stunden hingesetzt und Bugtracking betrieben, wobei ich nun auf einen "eigentlich" blöden Fehler gestossen bin. Vergleicht man den Anmeldschirm mit einer unter Linux laufenden Installation, fällt einem (dann irgendwann) :roll: auf, das in der Formaktion einmal die URL zum Installer steht + der Contenido-Session, im Falle von XAMPP steht dort aber nur die Contenido-Session. Daher auch kein Aufruf des Installers, sondern der index-Datei des Contenido Backends.
Den Grund dafür findet man dann in der Funktion self_url() in der conlib/session.inc. Hier wird die globale Variable $PHP_SELF dazu genutzt die URL mit Query zusammen zu bauen. Leider gibt es diese globale Variable aber unter XAMPP (zumindest bei mir auf Win2000) nicht, was einem ein Blick auf das phpinfo()-File von XAMPP auch bestätigt.
Hier müßte stattdessen die ebenfalls globale Variable $_SERVER['SCRIPT_NAME'] zur Anwendung kommen.

Dazu habe ich nun in der conlib/session.inc die Funktion wie folgt geändert

Code: Alles auswählen

function self_url() {
    global $PHP_SELF, $QUERY_STRING;

    $sPhpSelf = (!isset($PHP_SELF) || empty($PHP_SELF))?$_SERVER['SCRIPT_NAME']:$PHP_SELF;

    return $this->url($sPhpSelf.
           ((isset($QUERY_STRING) && ("" != $QUERY_STRING)) ? "?".$QUERY_STRING : ""));
  }
Könnte das bitte mal Jemand unter verschiedenen Win-Versionen und XAMPP testen? Danke. :-)

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

emergence
Beiträge: 10643
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Re: [BUG 4.8.13 RC2] PHP_SELF ist leer unter XAMPP

Beitrag von emergence » Mi 9. Jun 2010, 08:55

testen, nein...

ich verwende folgendes

Code: Alles auswählen

  function self_url() {
    global $_SERVER;

    return $this->url($_SERVER["PHP_SELF"] .
      ((isset($_SERVER["QUERY_STRING"]) && ("" != $_SERVER["QUERY_STRING"]))
        ? "?" . $_SERVER["QUERY_STRING"] : ""));
  }
*** make your own tools (wishlist :: thx)

Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: [BUG 4.8.13 RC2] PHP_SELF ist leer unter XAMPP

Beitrag von Oldperl » Mi 9. Jun 2010, 09:00

Hallo emergence,

das sieht besser aus wie mein Codeschnipsel. 8)
Eine Frage dazu, muss man hier eigentlich die $_SERVER explizit nochmal global setzen? Sind diese Variable wie z.B. auch $_POST und $_GET immer im globalen Kontext?

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

emergence
Beiträge: 10643
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Re: [BUG 4.8.13 RC2] PHP_SELF ist leer unter XAMPP

Beitrag von emergence » Mi 9. Jun 2010, 09:24

ach, das kommt aus noch älteren zeiten...
notwendig ist es nicht mehr... es wurde mal benötigt als php <= version 4.1.0 war...
*** make your own tools (wishlist :: thx)

Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: [BUG 4.8.13 RC2] PHP_SELF ist leer unter XAMPP

Beitrag von Oldperl » Sa 3. Jul 2010, 18:35

:arrow: CheckIn and Closed. :-)
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Gesperrt