michael: Apache/PHP: Fehlerausgaben einstellen

Hallo

Mein neuer Apache (PHP?) (WAMP von e-novative) gibt neuerdings nicht nur die 'richtigen' Fehler aus, sondern auch Notices, wenn beispielsweise eine Variabel in PHP nicht definiert ist. Das sieht dann ungefähr so aus:

Notice: Undefined variable: action in d:\htdocs\gallery\newpic.php on line 3

Wie kann ich diese Notices ausschalten? Da müsste es doch irgendeine PHP-Funktion oder eine Einstellung in einer Konfigurationsdatei geben. Habe gesucht, aber nix gefunden. Vermutlich werdet ihr jetzt sagen, es sei gar nicht die Idee, diese auszuschalten (Sicherheit?), aber viele von meinen Skripten sind nunmal so, dass es teilweise undefinierte Variabeln gibt.

Gruss

Michael

  1. Gerade das abschalten dieser Ausgabe bringt Sicherheit!
    ini_set('error_reporting', E_ALL &~E_NOTICE);
    sollte es tun

    1. Hallo Herbert.

      Gerade das abschalten dieser Ausgabe bringt Sicherheit!

      Inwiefern?

      Das Beseitigen der Ursache dieser Ausgabe bringt Sicherheit.

      Einen schönen Donnerstag noch.

      Gruß, Ashura

      --
      Last Tears Keep Calling
      See Angels Falling
      Black Shadows In Your Head
      And One Eye For The Dead
  2. Wie kann ich diese Notices ausschalten?

    da gibts mehrere möglichkeiten, am einfachsten ist aber die php funktion error_reporting(). schau dir die mal an.

    Andi

  3. Moin!

    Wie kann ich diese Notices ausschalten? Da müsste es doch irgendeine PHP-Funktion oder eine Einstellung in einer Konfigurationsdatei geben. Habe gesucht, aber nix gefunden. Vermutlich werdet ihr jetzt sagen, es sei gar nicht die Idee, diese auszuschalten (Sicherheit?), aber viele von meinen Skripten sind nunmal so, dass es teilweise undefinierte Variabeln gibt.

    Das ist schlecht. Undefinierte Variablen sollte es in einem Skript niemals geben, man sollte ALLE Variablen vor ihrer ersten Benutzung als Inhaltsquelle IMMER mit einem definierten Wert initialisieren (z.B. dem Leerstring oder einer 0, wenn man zu diesem Zeitpunkt noch keinen anderen sinnvollen Wert kennt).

    Macht man das nicht, kann potentiell diese Variable durch eingeschleppte URL-Parameter (bei register_globals=on) "passend" vorbelegt werden und dein Skript damit zu Aktionen verleiten, die du nicht vorhersehen kannst. Das übliche Ziel ist, fremden Code zur Ausführung zu bringen, andere Ziele schließt das aber nicht aus.

    Was spricht dagegen, einfach jede Notice-Meldung zu verhindern, indem du die fehlende Variable zuvor einfach mit

      
    $variable = "";  
    
    

    initialisierst?

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!