If you're going to have a registration system you will need three things:
1. Registration form
2. Login form/state
3. Place to store data
(3) is the key factor here. Most people use a database since it integrates nicely with many programming languages. For example, MySQL and PostGreSQL are two free relational database solutions. They integrate nicely with PHP with the mysql extension (which is installed by default in PHP 5.2, just needs to be enabled).
(1) would be used to get the data from the user and put it into (3). At the minimum this would be a login identifier (such as a username) and a authentication factor (such as a password). Most passwords are stored in the database encrypted, as well. You would need to use a programming language such as PHP to communicate between your web application and data storage layers.
(2) would be used to authenticate the user. They would enter their username and password, which would then be checked against the data stored in (3). You would also have to store login state (such as in an HttpSession object or in a cookie) to make sure that the user doesn't have to login to each page. This state would also be used to check if a user is logged in or not.
If you're not into coding this yourself (or even if you are and don't want to reinvent the wheel), you should check out the content management systems described above, such as Joomla, Drupal and Mambo. There are many others (just Google "content management system" or "cms"). You could also head over to
http://www.hotscripts.com/ and check out the PHP scripts section.