PHP Notices are common to occur after PHP version upgrades or where an obsolete PHP code is moved from Old version PHP to new version. This is common error in web software using Frameworks which have been abandoned by developers.
Having PHP Notices to appear on a webpage is pretty ugly and give a lot of information which might be used by malicious crackers to try to break your site thus it is always a good idea to disable PHP Notices. There are plenty of ways to disable PHP Notices
The easiest way to disable it is globally in all Webserver PHP library via php.ini (/etc/php.ini) open it and make sure display_errors is disabled:
display_errors = 0
or
display_errors = Off
Note that that some claim in PHP 5.3 setting display_errors to Off will not work as expected. Anyways to make sure where your loaded PHP Version display_errors is ON or OFF use phpinfo();
It is also possible to disable PHP Notices and error reporting straight from PHP code you need code like:
<?php
// Turn off all error reporting
error_reporting(0);
?>
or through code:
ini_set('display_errors',0);
PHP has different levels of error reporting, here is complete list of possible error handling variables:
<?php
// Report simple running errorserror_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings …)error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.inierror_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (see changelog)error_reporting(E_ALL);
// Report all PHP errors error_reporting(-1);
// Same as error_reporting(E_ALL);ini_set('error_reporting', E_ALL); ?>
The level of logging could be tuned on Debian Linux via /etc/php5/apache2/php.ini or if necessary to set PHP log level in PHP CLI through /etc/php5/cli/php.ini with:
error_reporting = E_ALL & ~E_NOTICE
If you need to remove to remove exact warning or notices from PHP without changing the way PHPLib behaves is to set @ infront of variable or function that is causing NOTICES or WARNING:
For example:
@yourFunctionHere();
@var = …;
Its also possible to Disable PHP Notices and Warnings using .htaccess file (useful in shared hosting where you don't have access to global php.ini), here is how:
# PHP error handling for development servers
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/path/public_html/domain/php_errors.log
php_value error_reporting -1
php_value log_errors_max_len 0
This way though PHP Notices and Warnings will be suppressed errors will get logged into php_error.log
More helpful Articles
Tags: code, com, common, default, developers, good, ini, level, log, make, OFF, Old, php, php5, setting, software, stackoverflow, turn, Turn Off, value, version, Warnings, web, webpage, work
Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36
It doesn't work (PHP 5.3.10-1ubuntu3.15 with Suhosin-Patch (cli) (built: Oct 29 2014 12:16:30)):
<?php
ini_set('display_errors', 0);
require_once __DIR__ . '/db_config.php';
$db = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);
——————————-
output:
Warning: mysqli::mysqli(): Headers and client library minor version mismatch. Headers:50540 Library:50621 in…
View CommentView CommentMozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
You can try set in php.ini error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
maybe should make PHP only show errors.
Also maybe there is some mismatch between libphp installed module and mysql. Maybe you upgraded only mysql-server to a newer version but you kept the libphp module old. Try to upgrade both and this should solve the issue. This might have happened also if you have custom compiled php.
I’ve seen people reporting similar problem, check out discussion – http://stackoverflow.com/questions/10759334/headers-and-client-library-minor-version-mismatch
View CommentView CommentMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50
i love you!
View CommentView CommentMozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
I think to fix these notice & warning could be a better option.
View CommentView Comment