Page 1 of 1

$PHP_SELF

Posted: 2003-02-27 13:57
by Anonymous
Hi,

hat jemand ne Ahnung, wie ich in PHP4.3.1 (als cgi-Version kompiliert) die korrekte Ausgabe der PHP_INFO Variable hinbekomme? Ich habe hier schon gelesen, daß es ein bekannte Bug ist - zumindest in php4.3.0, ich habe aber kein Bugfix dafür finden können?

Gruß
André

Re: $PHP_SELF

Posted: 2003-02-27 16:03
by arty
Hi,

das scheint ein Bug der 4.3.x Version zu sein: http://bugs.php.net/bug.php?id=22233

bye
arty

Vorsicht bei php4.3.x als cgi

Posted: 2003-02-27 19:13
by Anonymous
Also:

Ich rate allen, die PHP als cgi kompilieren wollen, von der Verwendung der 4.3.0 / 4.3.1er Versionen ab. Dort wird die $PHP_SELF nicht korrekt gesetzt und es gibt offenbar auch kein Bugfix!!!

Bei mir läuft nun wieder php4.2.3 ...

In der Modul-Version funktioniert es übrigens ...

Gruß
André

Re: $PHP_SELF

Posted: 2003-02-27 19:49
by coolsurfer
Hi,

es gibt gleich mehrere "BugFixes"

1. Die regelmässig erstellten Hourly-Snapshots haben diesen Fehler nicht; dafür kürzen diese das "?" am Ende der URL nicht weg :-( $PHP_SELF ist dort also ggf. "test.php?id=123" (macht also auch nicht wirklich Sinn)

2. Es gibt einen problemlos funktionierenden Workarround

In die Datei /etc/php.ini folgendes einfügen (oder die Zeile suchen und verändern)

Code: Select all

auto_prepend_file = /etc/php.top
dann eine Datei /etc/php.top mit folgendem Inhalt erstellen:

Code: Select all

// Small Workaround for a bug in PHP 4.3.0/cgi
// See http://bugs.php.net/bug.php?id=21261 for details

$_SERVER['SCRIPT_NAME'] = substr($_SERVER['PATH_TRANSLATED'], strlen($_SERVER['DOCUMENT_ROOT']));

if (substr($_SERVER['SCRIPT_NAME'], 0, 2) == '//') {
    $_SERVER['SCRIPT_NAME'] = substr($_SERVER['SCRIPT_NAME'], 1);
}

$PHP_SELF =
$SCRIPT_NAME =
$_SERVER['PHP_SELF'] =
$_SERVER['SCRIPT_NAME'];

Re: $PHP_SELF

Posted: 2003-02-27 20:21
by Anonymous
... ich laß es erst mal so, frei nach dem Motto: "Never touch a running system!"
... aber trotzdem danke für den Tipp.

Gruß André