Hi!
Dann muß ich wohl das & ~E_NOTICE löschen?
Ja, dann hättest du in deinem Fall eine Meldung erhalten.
Oftmals will man die Einstellung in der php.ini allerdings gar nicht ändern.
Professionelle Webhoster haben PHP meist so konfiguriert, daß nur Errors, aber keine Warnings und Notices gezeigt werden.
Das kann mitunter nämlich auch zu Problemen führen und einige Scripte versagen dann eventuell den Dienst, wenn so eine Meldung ausgegeben wird.
Beispiel:
So sollte es aussehen:
if ( isset( $_POST['eingabe'] ) ) {
header( 'Location: http://example.com/seite.php' );
exit;
}
Wenn es aber so aussieht:
if ( isset( $_POST[eingabe] ) ) {
header( 'Location: http://example.com/seite.php' );
exit;
}
Dann würde ein Notice ausgegeben werden, daß versucht wird, auf die undefinierte Konstante "eingabe" zuzugreifen. Da es die aber nicht gibt, vermutet PHP dann, daß $_POST['eingabe'] statt $_POST[eingabe] gemeint war.
Kein Problem eigentlich.
Aber wenn ein Notice ausgegeben wird, dann wurden damit auch schon HTTP-Header verschickt und die folgende Weiterleitung kann nicht mehr funktionieren...
Stellt ein Hoster das error_reporting zu streng ein, dann kann er davon ausgehen, daß er eine ganze Menge an Mails von irgendwelchen Dummie-Usern bekommen wird, die sich darüber beschweren, daß bei ihren eigenen (oder runtergeladenen und installierten) Scripten immer irgendwelche "komischen Meldungen" kommen.
Auch viele bekannte Boards, Content Management Systeme, Gästebücher, ..., die man kostenlos runterladen kann, sind so geschrieben, daß es zu Notices/Warnings kommen würde.
Naja, wie auch immer:
Wenn du die Einstellung in deiner php.ini nicht ändern möchtest, dann kannst du auch zu Beginn deines Scriptes die Funktion error_reporting( E_ALL ); aufrufen.
Das hat dann den gleichen Effekt.
Schöner Gruß,
rob