Beware Using UTF8-BOM Encoding in PHP Code
Some months ago I wrote a PHP program to send out a mailshot from a list of email addresses and names...
Somehow my source code on my PC became corrupted so I copied it all from my server using Windows Notepad.
This program would produce a PowerShell script from the data provided, then download it. When testing, the download just didn't work - message "Warning: cannot modify header information - headers already sent by..."! Try as I might, I just kept getting this error... This comes from using the PHP command header() after something has been sent for display! I went through my code line by line and just could not see where this was occurring. After much trawling I came across a suggestion on stackoverflow.com - UTF8-BOM encoding can cause blank lines to be displayed...
So, I looked at my code and yes, the encoding was UTF8-BOM (apparently Windows Notepad does this!). I converted the source using Notepad++ to just UTF8 and lo and behold, all worked as it should work!
A big "Thank You" to stackoverflow.com for the tips - useful in lots of cases I might add but you do have to sort through some of the BS posted by a small number of idiots...
No comments:
Post a Comment