Если перед вызовом функции клиенту уже передавался какой-либо вывод (тэги, пустые строки, пробелы, текст и т.п.), setcookie() вызовет отказ и вернет FALSE. Если setcookie() успешно отработает, то вернет TRUE. Это, однако, не означает, что клиентское приложение (броузер) правильно приняло и обработало cookie.
php.net/setcookie