Why do most of the Joomla! PHP files start with defined(' JEXEC')?

From Joomla! Documentation

Revision as of 16:26, 1 September 2012 by JoomlaWikiBot (talk | contribs) (clean up categories with <noinclude> tags)

Most PHP files within Joomla! 1.5 begin with the following statement:

defined('_JEXEC') or die('Restricted access');

This statement checks to see if the file is being called from within a Joomla! session. This protects your site by making it more difficult for a cracker/hacker to damage your site.

However, this line should NOT be included in your main index.php file, since this is the program that starts the Joomla! session.