ho corretto così ma non ne blocca l'apertura diretta:

codice:
$this_file = str_replace('\\', '/', __FILE__);
    if ($_SERVER["SCRIPT_FILENAME"] == $this_file) {
        header("HTTP/1.0 403 Forbidden");
        exit();
    }
il fatto di mandare un parametro per post è qualcosa che prenderò in considerazione se non ci sono altri metodi più immediati. Grazie dell'aiuto che mi stai dando.