Sessions and Authentication
The code is understandable, but it can be simplified.

Instead of:


public function unset_session()
{
    if (isset($this-&gt;session))
    {
        $this-&gt;session =  null;
    }
}



You can simply:

public function unset_session()
{
    $this-&gt;session =  null;
}




Instead of:


public function get_session()
{
    if (isset($this-&gt;session))
    {
        return $this-&gt;session;
    }
    else
    {
        return false;
    }
}



You can simply:

public function get_session()
{
    return $this-&gt;session;
}


(if you don't mind that it returns a falsy value (null) instead of a real false)



Instead of:


public function is_logged_in()
{
    if (isset($this-&gt;session))
    {
        return true;
    }
    else
    {
        return false;
    }
}



You can simply:

public function is_logged_in()
{
    return isset($this-&gt;session);
}




Instead of:


public function get_error($key)
{
    if (isset($this-&gt;error[$key]))
    {
        return $this-&gt;error[$key];
    }
    else
    {
        return false;
    }
}



As of PHP 5.3, using the short ternary operator, you can simply:

public function get_error($key)
{
    return $this-&gt;error[$key] ?: false;
}