Enter the CMS or Content Management System. There are commercial CMS packages available as well as free open source projects, but many times you need a solution that is unique to a particular site or website content team.
The definition of a CMS can vary as well. A simple CMS might just be a database front end application to manage membership information or products offered by a company. Then again you might see a comprehensive software suite that includes an HTML editor and complex access control features down to the HTML tag level.
How many features you implement, the technologies you use and the type of interface you choose for your users depends on a lot of factors. Building your own CMS is not necessarily difficult. You may need something very simple with the goal of making the team of people that contribute content to a site more productive.
What are the client's needs? Who will be adding content and what is their skill level with the technology you plan to use? These questions govern the features your CMS application will have.
Let's start simple. Let's say that the main goal of building your CMS project is to allow non-technical users the ability to add text content to a website. They only need to add to the main body of the pages such as press releases, news announcements, calendars of events and descriptions of services. The main navigation, look and feel of the site, and any other features must stay the way they are.
Believe me, you don't want to know what would happen if non-technical users were allowed to edit the site with an HTML editor. If the site has dynamic content, changing it is likely not straightforward.
A very simple browser-based Web form interface can be constructed to generate the HTML needed without touching any other code on the site. If the pages that need to be generated are static pages, your browser-based application can generate the whole page, or generate a piece of it for insertion into a template or using SSI.