Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am coming from .NET to PHP. I am playing around with a long file written by so

ID: 651624 • Letter: I

Question

I am coming from .NET to PHP. I am playing around with a long file written by someone else (called "cryptographp.inc.php"). It builds and returns an image to the browser.

I want to show the image that the file returns on my Cryptocode/index.php page--like this:

<?php
include './cryptographp.inc.php';
?>
But when I load the page, firefox returns an error saying

"The image http://localhost/Cryptocode cannot be displayed because it
contains errors"
How would I go about debugging an error like this in PHP? I am used to stepping through code in visual studio. What techniques would people use in the PHP world?

Explanation / Answer

In short: I would start by enabling my development environment to catch the errors. There are some setting you would need to set.

For the syntax errors, you need to enable error display in the php.ini. By default these are turned off because you don't want a customer seeing the error messages. Check this page in the PHP documentation for information on the 2 directives: error_reporting and display_errors. display_errors is probably the one you want to change. If you can't modify the php.ini, you can also add the following lines to an .htaccess file:

php_flag display_errors on
php_value error_reporting 2039
You may want to consider using the value of E_ALL (as mentioned by Gumbo) for your version of PHP for error_reporing to get all of the errors. more info

Three important points to consider:

Check the error log file as it will have all of the errors (unless logging has been disabled).

Adding the following 2 lines will help to debug errors that are not syntax errors:

error_reporting(-1); ini_set('display_errors', 'On');

Use an editor that checks for errors why you type, such as PhpEd. It also comes with a debugger which can provide more detailed information. (The PhpEd debugger is very similar to xdebug and integrates directly into the editor so you use one program to do everything). The "xdebug" will make your reports much nicer as well.