1. Проверьте, что нигде переадресация не стоит на протокол http://
2. Если с localhost'a тестируете, то вот так нужно:
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
setcookie('cookiename', 'data', time()+60*60*24*365, '/', $domain, false);