Turn off warnings and errors on php/mysql


Question

I am getting expected notices and warnings and would like to turn them off on my php file. errors are:

Warning: fsockopen()

and notices are:

Notice: A non well formed numeric value encountered in

I am planning to use cron for this php script and do not want to get any errors or notices logged anywhere.

1
51
9/26/2016 1:46:50 PM

Accepted Answer

When you are sure your script is perfectly working, you can get rid of Warning and notices like this: Put this line at the beginning of your php script:

error_reporting(E_ERROR);

Before that, when working on your script, i would advise you to properly debug your script so that all notice or warning disappear one by one. So you should first set it as verbose as possible with:

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

UPDATE : how to log errors instead of displaying them As suggested in the comments, the better solution is to log errors into a file so only the php developer sees the error messages, not the users. A possible implementation is via the .htaccess file, useful if you don't have access to the php.ini file (source).

# supress php errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
# enable PHP error logging
php_flag  log_errors on
php_value error_log  /home/path/public_html/domain/PHP_errors.log
# prevent access to PHP error log
<Files PHP_errors.log>
 Order allow,deny
 Deny from all
 Satisfy All
</Files>
139
8/12/2010 7:47:19 PM

Prepend functions with the '@' symbol to suppress certain errors, As opposed to turning off ALL error reporting.

More Info: http://php.net/manual/en/language.operators.errorcontrol.php

PHP supports one error control operator: the at sign (@). When prepended to an expression in PHP, any error messages that might be generated by that expression will be ignored.

@fsockopen();


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon