Raketenwilli: Angeben in .htaccess

Beitrag lesen

Falls das funktioniert: Ja. Siehe Antwort von „Zucker“.

php_flag display_errors On

Aber die Idee ist eher subotimal, die funktioniert nicht überall. Wahrscheinlich suchst Du eine Lösung, damit Dein PHP auf dem Server und dem Testsystem unterschiedlich reagiert:

Mach das besser in purem PHP, das überlebt dann auch den Serverumzug.

<?php
### Safe as DOCUMENT_ROOT/host_settings.php

define( 'DEBUG', true );    # Testsystem
#define( 'DEBUG', false );   # Webserver
# ...
?>

Tipp! Diese Datei auf dem Server und Deinem Testsystem schreibschützen. z.B. mit chmod 444 host_settings.php; Dann wird die nicht ganz so einfach versehentlich überschrieben.

Alternative:

Man kann das auch automatisch machen, z.B. anhand des Hostnames oder einer anderen stabilen Eigenschaft:

<?php
### Safe as DOCUMENT_ROOT/host_settings.php

if ($_SERVER['SERVER_NAME'] == 'localhost' ) {
    define( 'DEBUG', true );    # Testsystem
} else {
    define( 'DEBUG', false );    # Webserver
}
?>
<?php
### Safe as DOCUMENT_ROOT/lib/error_handling.php

if (! defined( 'MyDEBUG' ) ) {
    ## Wenn die Datei nicht da ist, dann hast Du halt „Pech“...
    include ( $_SERVER['DOCUMENT_ROOT'].'/host_settings.php' );
}

if ( defined( 'MyDEBUG' ) && MyDEBUG ) { 

    ## Settings für das lokale oder zeitbegrenzte Debugging: 
    error_reporting( E_ERROR | E_WARNING | E_PARSE | E_NOTICE );
    ini_set( 'display_errors', 1 )

} else {

    ## Settings für den Normalbetrieb
    error_reporting( E_ALL );
    ini_set( 'display_errors', 0 )

}

und dann in jede Datei, bei der Du das brauchst (Also nicht in libs, die erben das, sondern nur in direkt per URL aufrufbaren Skripten):

<?php
### Falls Du nur für dieses Skript Fehler sehen willst, ist hier Deine Chance:
# define( 'DEBUG', true );    # spezieller Modus dieses Skript an/abschaltbar

require( $_SERVER['DOCUMENT_ROOT'] . '/lib/error_handling.php' );

### Dein Zeug ###
?>