Dopo che ho cambiato e ho messo il tuo codice, mi fa ancora entrare nella main.php senza fare il login.

In effetti è vero, se chiudo il browers non lo fa più!
---
Quindi per migliorare ancora tu mi dici di non usare false o true ma di usare un valore; devo intervenire su questa parte?
codice:
if ($nom==1) {			    
				$_SESSION['valido'] = "strSessionOk";		
				header("Location: main.php");
			} else {				
				$_SESSION['valido'] = "strSessionDenied";
				$error = " Errore: Nome e Password non validi.";
			}
		} else {
	
	if (!isset($_SESSION['valido'])){	
	 	$_SESSION['valido'] = "strSessionDenied";	
	} 
	$error = "";
poi il controllo lo faccio cosi?
codice:
if (!$_SESSION['valido']) {
	session_destroy();
	header("Location: index.php");
} elseif ($_SESSION['valido'] == "strSessionDenied") {
	session_destroy();
	header("Location: index.php");
}
Oltre a questo poi il fatto che fino a che non chiudo il browers riesco ad accedere senza fare il login o risolvo anche questo fatto?
Grazie di tutto (intanto)