For setcookie() darf genauso wie vor header() und session_start() nichts gesendet werden. Senden heißt hier: print(), echo und ?> non-php <?php.
In deinem Fall trifft das letzte zu: Du sendest vor dem setcookie() ein <head>. Lösung: Nichts davor senden oder Output Buffering.

Übermäßiger [tt]-Gebrauch. <3 <3