dedlfix: Umstellung auf PHP5...

Beitrag lesen

echo $begrüßung;

Der Pfad lautet zB http://www.software-...de/...-cat.php/Impressum-...-VBA

Damit wird normalerweise alles hinter php/ ausgelesen und darüber dann die Kategorie bestimmt. Ist halt ein Pfad mit Keywords.

Du nutzt also PATH_INFO, dann schau doch in $_SERVER['PATH_INFO'] nach.

Testcode online:

$aPath_info=explode(".php/",$_SERVER['PHP_SELF']);
$path_info=$aPath_info[1];
echo "A".$path_info."B".$_SERVER['PHP_SELF']."C".$aPath_info;

ergibt:

AB/sebastian-jurk-cat.phpCArray

var_dump($aPath_info) sollte anzeigen, dass dein Array aus nur einem Element besteht. Du siehst ja auch, dass in $_SERVER['PHP_SELF'] nichts mehr nach dem .php/ steht, das man noch abspalten kann.

Arrays gibt man besser mit print_r() oder var_dump() aus. Dann erhält man auch mehr Information als nur ein "Array".

Also unter A ist nichts und php_self ist nur ein Bruchstück...

Anscheinend hat sich der Inhalt von $_SERVER['PHP_SELF'] in dieser Version oder Konfiguration geändert. Teilweise sind die Inhalte von $_SERVER von der konkreten Umständen des Servers und der Einbindung PHPs in diesen abhängig.

  • Alle Fehlermeldungen einschalten, auch die sonst unterdrückten Notice-Meldungen: error_reporting auf E_ALL stellen (und display_error auf on).
    Wird das im Php-Code gemacht? Ist mir noch nie begegnet. Tritt wie gesagt nur online auf.

Auf der Testmaschine steht das idealerweise irgendwo in einer übergreifenden PHP-Konfiguration: php.ini oder .htaccess (dort als Zahlenwert). Ansonsten kann man beide Direktiven auch noch im Script setzen. error_reporting mit der gleichnamigen Funktion und display_errors über ini_set().

Notice-Meldungen werden beispielsweise ausgegeben, wenn du auf Variablen zugreifen willst, die gar nicht existieren, beispielsweise aufgrund von Tippfehlern oder falschen Annahmen. Im obigen Beispiel sollte $aPath_info[1] angemeckert werden, weil es das Element nicht gibt.

  • phpinfo() aufrufen und nachschauen, was alles in $_SERVER steht.
    Welche Infos sind denn da interessant?

Schau rein, besonders im letzten Abschnitt, dann siehst du, in welchen Feldern von $_SERVER die für dich interessanten Werte drinstehen.

echo "$verabschiedung $name";