Hi there. Sessions and cookies are used for different purposes. As you know, you use a cookie to store things like specific user preferences on a user's machine, this can hold many variables, and has a set lifetime. A session doesn't have a lifetime as such, but lasts for however long you have it set in your php.ini, OR until the browser is closed/session is destroyed.
The cookie that is set by a session contains a variable with the SessionID (SID) in it, which refers to a temporary file on the server, which contains your actual session variables. This is the joy of sessions. Although not foolproof, it makes it a LOT harder for a user to send corrupted data to screw up your web page, as a normal cookie holds all of the variables on the user's pc, which they have full access to.
To make the session use only cookies, you need to enable the session.use_only_cookies parameter in the php.ini.
session_register() is a function that registers session variables. If register globals is turned on in your php.ini, then this function needs to be used to initialize session variables. If register globals is off, then it should be ignored, and the $_SESSION superglobal should be used instead.
With register globals:
session_start();
session_register("foo");
$foo = "bar";
Without register globals (more secure):
session_start();
$_SESSION['foo'] = "bar";