HTML will not be enough. You will need HTML, a database, and some server-side coding.
It's a lot to learn. For those features you've listed, you might be ahead to try a Content Management System (CMS). Drupal is one of many CMS's that make those features easy to implement without too much effort.
http://drupal.org/