I had a hard time finding why my cookie wasn't being set because of:
								if(strlen($this->SetCookie($cookie_name, $cookie_value, $expires, $path , $domain, $secure, 1)))
		$this->error="";
If you don't want to fail on not being able to set cookies maybe add a warning message in your class along with the error message and only fail if $this->error !== "".
Also the domain "localhost" fails your domain name validation check. Here is my fix in the SetCookie function:
		if($domain!="localhost"
			&& ($domain==""
			|| !strpos($domain,".",$domain[0]=="." ? 1 : 0))
		)
I am not sure if you even need this check because on internal LANs can you name domains single words also? I'm not sure about that one.
Regards,
Kepler Gelotte
neighborwebmaster.com