Call me curious, why aren't you using one of the pre-built CMS frameworks for this? WordPress, Drupal, Joomla, Concrete5... all lend themselves to this sort of thing without a lot of brain freeze.
PS. Dynamic (php/mysql) questions belong in the Developer's Forum where you'll receive better answers.
Because drupal is a new skill i would have to learn! and its very bloody complecated
I'm just saying WordPress, et al is much less bloody than doing it ALL from scratch.
Most, if not all the client features you've asked about lately are pre-built into the major CMS frameworks. Why re-invent the wheel? If this is what your clients want, you're selling yourself short by not learning to use at least one of these frameworks.