Something I've done in the past is used a .php include file that contains only the text and images that the non-htmlers can edit as much as they like.
The actual layout of the page is in a separate .php file that just calls the include.
That way there is absolutely no way they can monkey with the layout.
There would be two files, for example news.php, that would have all the layout html of the page and a tiny include script. That tiny script tells the server to gather the contents of the content.php file and write them in to the news.php page when viewed on a browser.
Your non-coders would use content.php and never open the news.php page.