Cannot modify header information - headers already sent

This warning message is produced by PHP if a program attempts to send an additional HTTP header after the separator (and hence all the headers) has already been sent. In the HTTP protocol a server response consists of a group of headers followed by a body, separated by a single blank line (i.e. a line containing only a carriage-return).

By far the most common cause of this problem is that one or more PHP files contains characters (usually a space or an empty line) outside of the <?php and ?> tags. To fix the problem you should examine the PHP file indicated in the warning message and remove any blank characters at the beginning and end of the file. Some text editors, including some online file managers, are prone to automatically adding extraneous line-ending characters at the ends of files, particularly when not configured to do otherwise.

Simplest way to prevent this is to remove the closing ?> tag at the end of your PHP files. It actually serves no useful purpose as the PHP interpreter knows that end-of-file means end-of-PHP too. Removing it means that any extra blank characters added by your editor will have no effect on the output generated and so will not prevent additional HTTP headers from being sent.

Turn output_buffering setting on php.ini to on to permanently remove this error.

Another solution might be on some cases to remove the echo or print or any other statement which prints something on the page. By removing all such statement, this error will be removed and you will be able to modify header information - in other words - you can use the header function.

Go to: Global Configuration > System tab, disable the web services, save/apply the configuration, re-enable web services and save the settings again. If this doesn't work, play the similar game with the session handler - change it  to none, apply your changes, then change back to database. This will reset couple of things here and there, and you probably can enjoy your site again Wink.