Usa variables de sesión siempre que sea posible, si no existe, entonces compruebas la cookie, donde sólo debes almacenar ID del usuario, ya sea numérico o nombre (login) y un hash que no sea el mismo de la contraseña que tienes en la base de datos, pero que sí te permita comparar si se trata de una sesión válida.
Revisa este ejemplo:
http://www.forosdelweb.com/f18/aport...8/#post4265381