Crayl
Crayl

Reputation: 1911

PHP - error_reporting doesn't work

My webhosting provider doesn't offer the option to enable error reporting. So tried it with error_reporting(E_ALL); But this also doesn't work. I tried the following script:

 <?php
 error_reporting(E_ALL);
 echo $test;
 ?>

If I read the manual correctly, then this should generate an error notice. But this also doesn't work. Did I make something wrong or is the only solution to get a new webhosting provider?

Upvotes: 4

Views: 12215

Answers (4)

&#193;lvaro Gonz&#225;lez
&#193;lvaro Gonz&#225;lez

Reputation: 146330

You probably want to do something with the triggered error, such as logging it:

ini_set('error_log', '/path/to/php-error.log');

... and/or displaying it:

ini_set('display_errors', true);

Please find additional documentation at Error Handling and Runtime Configuration.


Addendum: this directive used to be documented as boolean but it's no longer the case. Also, since both the display_errors directive and ini_set()'s second argument are of string type, when using strict types you won't be able to pass a boolean:

<?php
declare(strict_types=1);
ini_set('display_errors', true);

Fatal error: Uncaught TypeError: ini_set() expects parameter 2 to be string, bool given

Thus you'll need to pass a string that evals to true such as 'true' or '1'.

Upvotes: 5

Andreas Wong
Andreas Wong

Reputation: 60506

error_reporting is just telling PHP how verbose the error reporting should be, but you also need to tell it to actually display errors out to the browser by setting

ini_set('display_errors', 1);

Upvotes: 11

Artjom Kurapov
Artjom Kurapov

Reputation: 6155

If its a shared hosting then for security reasons, they may disable error reporting, still they should be able to provide error log for your particular domain, try talking to them if they don't want to show it inline - get access go log file or maybe some adminpanel that can read it securely.

Upvotes: 2

deceze
deceze

Reputation: 521994

You also need:

ini_set('display_errors', true);

Upvotes: 2

Related Questions