There are several places / configurations to control error reporting and handling in PHP.
The php.ini file
Note: where your php.ini file is located or which of the php.ini files is the used one by your apache you can find out by the PHP function phpinfo(). Include echo phpinfo() at the beginning of you php application.
Some important directives (for all look [http://www.phpcenter.de/de-html-manual/ref.errorfunc.html here]):
- This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user. For development this option should be set to "on".
Set the error reporting level. The parameter is either an integer representing a bit field, or named constants. The error_reporting levels and constants are described in [http://www.phpcenter.de/de-html-manual/ref.errorfunc.html#errorfunc.constants Predefined Constants], and in php.ini. To set at runtime, use the error_reporting() function. See also the display_errors directive.
- Tells whether script error messages should be logged to the server's error log or error_log. This option is thus server-specific.
- Name of the file where script errors should be logged. The file should be writable by the web server's user. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows NT it means the event log. The system logger is not supported on Windows 95. See also: syslog(). If this directive is not set, errors are sent to the SAPI error logger. For example, it is an error log in Apache or stderr in CLI.
To display errors to the screen (embedded in the HTML code) set display_errors = on. To log errors (addidtionally) in the apache log file set log_errors = on and don't set (uncomment) error_log.
The function error_reporting(...) in your PHP application (runtime option)
Set the error reporting level at runtime (overrides the corresponding value of the php.ini). If the script has fatal errors it won't have any affect. This is because the desired runtime action does not get executed.
The function set_error_handler
Sets a user function (error_handler) to handle errors in a script. CompletionSearch uses an own error handler which is defined in error_handler.php.