Cyx23: php: header() mag nicht

Hallo,

kann gerade auf dem betr. System nicht so viel rumprobieren, um nicht zu
riskieren, den normalen Betrieb mit irgendwelchen Fehlermeldungen zu stören.

Deshalb erstmal die etwas "weite" Frage, ob irgendwelche Sicherheitseinstellungen
oder fehlende Module beim betr. "Webspace" header() blockieren können.
Kann mir auch nur schwer vorstellen, dass die betr. php-Datei im falschen
Format auf den einen Server gekommen ist und deswegen schon irgendein
Zeichen ausgeliefert worden ist, und darum header() Porbleme macht.

Auf einem anderem Server mit PHP 5.2.1 laufen die Scripte, beim Problemfall
ist PHP 5.2.3 in Betrieb.

Grüsse

Cyx23

  1. Hallo,

    Auf einem anderem Server mit PHP 5.2.1 laufen die Scripte, beim Problemfall
    ist PHP 5.2.3 in Betrieb.

    Was bedeutet "beim Problemfall"?
    Was läuft denn nicht?
    Sind keine Header mehr setzbar?
    Gibt es Fehlermeldungen, ggf. auch in eine Datei geschriebene? Das könntest Du ja ggf. so einstellen per htaccess-Datei oder lokaler php.ini

    Läuft PHP dort als Modul oder als CGI oder als FastCGI?

    Hast Du schon einen HTTP-Logger bemüht, um zu sehen, was überhaupt in welcher Reihenfolge ausgegeben wird?

    LG
    Chris©

    1. Hallo,

      header wie z.B. 403 läßt sich nicht ändern. Fehlermeldungen mag ich im
      Moment wie schon angedeutet nicht aktivieren und frage deshalb ausnahmsweise
      etwas ins Blaue hinein.

      Falls es so zuviele Fehlermöglichkeiten gibt muß ich mal nen passenden
      Zeitpunkt abwarten, um doch noch Meldungen einzuschalten und mehr Informationen
      zu erhalten.

      ggf. auch in eine Datei geschriebene

      Du meinst per lokaler php.ini die Meldungen in eine Datei umleiten?

      Grüsse

      Cyx23

      1. Hallo,

        ggf. auch in eine Datei geschriebene

        Du meinst per lokaler php.ini die Meldungen in eine Datei umleiten?

        Ja, siehe Kapitel Error-Handling
        http://de2.php.net/manual/en/ref.errorfunc.php

        display_errors  auf 0 setzen
        error_reporting auf 2047 oder anderen passenden Wert setzen,
          siehe http://de2.php.net/manual/en/ref.errorfunc.php#ini.error-log
        error_log          Filepath und Name setzen
        log_errors        auf 1 setzen

        und Kapitel Settings
        http://de2.php.net/manual/en/ini.php#ini.list

        Je nachdem, ob es sich um eine Modul- oder eine CGI-Variante handelt, kannst Du das temporär in der .htaccess oder in einer lokalen (zusätzlichen) php.ini tun.

        Die Werte sind alle mit PHP_INI_ALL gekennzeichnet.
        Wenn dann also niemand in einer übergeordenten .htaccess oder in der Virt-Host-Konfiguratuion (Modul-Version) einen der Werte mit php_admin_value festgenagelt hat, darfst Du sie ändern.

        Sonst Musst Du ggf. eben an die Grundkonfiguration rangehen, was ich aber nicht tun würde. Übrigens lassen sich über die Rewrite-Engine auch Server-Parameter ins PHP-Environment importieren, was bestens dazu geeignet ist, ein kondionales DEBUG-Flag (oder mehrere) zu setzen.

        Alle Debug-Anweisungen können so drinbleiben in den Scripten, müssen nur z.B. mit

        if (isset($_SERVER['PHP_DEBUG']) and $_SERVER['PHP_DEBUG']) == 'M12345' )
          {
              do_log();    ## eigene Funktion
          }

        abgefangen werden.

        Um Bereiche abzugrenzen, bekommen einzelne Module bei mir immer eindeutige Nummern, so kann ich dann nur einen teil der schlafenden Debug-Informationen abrufen.

        Lass mal wissen, ob es Dir genützt hat.

        LG
        Chris©