Ho inserito questo codice leggermente modificato (recuperato su HTML.it) sembra funzionare bene anche se IE si comporta come sempre in modo incomprensibile. Sembra che il settaggio dei cookie durante la navigazione del sito (da accettati a non accettati) mandi in tilt il browser, infatti è necessario cancellare tutti i cookie dalla cache xché lo script riprenda a funzionare correttamente. Con FF nessun problema.

Ho apportato solo qualche modifica nella parte finale dove c'è il redirect ad un'altra pagina.
Il codice di seguito secondo voi è OK?

##############
<?php

/***
Se l'array $_COOKIE è vuoto possono esserci 2 ragioni:
1) non sono ancora stati inviati cookie
2) sono stati inviati ma il browser li rifiuta
***/
if(empty($_COOKIE)){

/***
Se non risultano cookie e la variabile "cookieTest" (passata attraverso la query_string) non esiste, significa che ancora non ne è stato inviato alcuno.
***/
if(!isset($_GET["cookieTest"])){

$message="questo è un test" ;

/***
Quindi invio il cookie di prova
***/
setcookie("test",$message) ;
/***
Effettuiamo il refresh per leggere il cookie di prova appena inviato, e "marchio" il test passando via query_string la variabile "cookieTest"
***/
header("Location: ".$_SERVER["PHP_SELF"]."?cookieTest=1") ;

}

else{

/***
La variabile "cookieTest" esiste, quindi il cookie di prova è stato inviato ma evidentemente il browser lo ha rifiutato.
***/
$abilitato=0 ;

}

}

/***
L'array $_COOKIE non è vuoto quindi il browser accetta i cookie
***/
else{

$abilitato=1 ;

}

if($abilitato=1){

header("Location: http://www.miosito.com/pagina_no_cookie.html");

}

?>