The session ID will ususally go into a cookie by default, depending on how you have your ini file set up. Sessions pretty much take care of themselves in PHP, you don't even need to know the session id, just let the server take care of it. I would never store an unencrypted password on the cookie, you will find sessions are more secure than cookies as a place to store variables.
Of course, I am speaking from a perspective of one who does not use sessions so I might have some details wrong on how to use them. I personally am inclined to turn sessions off, store my own unique id in a cookie, and handle the server side variables on my own for performance purposes, but that is the topic of another discussion which is still not resolved.
As far as generating the links on the fly, that is pretty simple, but your questions are kind of general to be addressing specifics. You need to pick a spot and dive in.
Basically, when they go to the index page you would query the database for available information then generate the links dynamically from your database by looping through the available records and output the html to make the links.
You would make eacha link reflect the data in that row, for instance:
<?php
echo "<a href='$template?reviewid=$reviewid&extra=$whatever'>$review_name</a>";
?>
When the user goes to $template, that page would check for an ID, then build a query based on the submitted information, query the database and output the results.