The first thing you should realise is this will not be an overnight thing, making your own CMS requires quite a lot of planning, a good understanding of the code and what you want to do, (or at least a copy of the PHP manual!). and a lot of patients, it might be weeks or even months before you manage to sucessfully code you'r own CMS in this style...
Some thing that you may wish to consider. for your forum and news reader articles is using some forum software (eg phpbb
), and hacking it about a bit, (using the control pannel and adding some code) so that you have an out of the box forum, and a news reader that you'll have made yourself, this also means you'll be able to change sytles etc just by changing a style sheet.
OK, I'll have a look at the first requirement first. (start at the very begining, it's a very fine place to start... (etc...))
For this, what I suggest is having a users table, the user table should contain all the information about your site users as well as your own personal details.
the database table should contain,
Privelage level (int)
email address (varchar(255))
privellage level will decide what is displayed on the page, and let you know that the user is logged in,
e.g. 1 - admin
2 - paying / privalleged user
3 - standard user
4/NA - not logged in / cannot login / not allowed to see info / banned etc...
(using this method of setting a privellage level with mean that only 1 char is sent and that instantly decides what can be displayed, this is a lot more server load friendly than if a username was set (many chars more traffic), and the database has to be searched to decide if the user exists, and to find out what the user can do.)
I'd suggest using just the PHP session (if someone has cookies enabled then it's quite certain that session variables will be allowed). but when a user first comes to the site, check for a cookie, if one exists set the session variable. in effect the cookie should just act as an unatended login of sorts.
(I'll post some code when I get home from work that should help with this login for you)