Home » Php » PHP not displaying errors

PHP not displaying errors

Posted by: admin July 12, 2020 Leave a comment

Questions:

I have a small script which im using to test PHP mail(), as below:

<?php
error_reporting(E_ALL);
ini_set("display_errors",1);

mail('[email protected]','test','test') or die('could not send') ;

echo "Mail Sent";

?>

When I run this script I get no output at all. I don’t get an error, I dont get anything echoed, I view the source, nothing.

Ive tried so many different variations, if I take out the mail function in the code above it will work fine.

This is a Windows hosted server so I have not access to php.ini or anything

Could it be some configuration that is causing no output when its encountering an error?

How to&Answers:

According to the PHP Runtime Configuration guide:

Note: Although display_errors may be
set at runtime (with ini_set()), it
won’t have any affect if the script
has fatal errors. This is because the
desired runtime action does not get
executed.

Your code appears to have a syntax error ('test, is missing a closing apostrophe). Thus, your program is encountering a fatal error. The only way to get a fatal error to display (EDIT: outside the error log) is to set display_errors = 1 in your php.ini file.

Answer:

The problem is with your sendmail server configuration. If youre testing this script on your personal development environment, don’t worry about it. It can be a pita to setup/configure a sendmail server. If you’re having this problem on your production server, the simpliest solution is to use a mailer library that has an smtp option (allowi g your email to be sent to an external smtp server for processing/delivery).

Here is a guide on using a 3rd party smtp mail script…
http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm