The user session needs to be regenerated at login and if the user-agent changes during a session.
Also passwords shouldnt be stored session side, even with a salt, perhaps use another unique string in place (md5(mt_rand()))
Also session lifetime should be set: