You would need to use a 'CMS' - or
Content Management System.
A CMS enables the client or user to log in to a control panel, where they can manage, modify and add pages and files, usually with very little or no knowledge of programming language.
The CMS 'protects' (to a certain extent) the core of the site, since the user can only modify the
content - i.e. text and images. A CMS will use a template you specify or create, and apply it to each subsequent page added or modified by the user.
You can of course code your own, but it requires a certain amount of work. However, there are hundreds of open source systems available you can implement with (usually) little effort.
OpenSourceCMS is a great site where you can try out an array of CMS's already installed and running.
Among them,
Wordpress is the popular choice for 'blogging', whilst
Drupal,
Joomla,
Mambo and
Textpattern are more advanced 'full-blown' systems.