Could it perhaps be that you're switching subdomains? For example, maybe you quickly type in http://mysite.com/login.php into your address bar, but then when you click the link for your control panel you're actually taken to http://www.mysite.com/control_panel/ ?
By default, sessions are only good for the specific subdomain they were created on, so mysite.com and www.mysite.com are two distinct domains and would therefore not share session data (by default - this can be changed).
EDIT: Also, is that the entire contents of your class? If so, how do you verify that [man]session_start/man has already been called?