Cita: si en vez de poner session_start en contador.php lo pongo en la primera linea de contacto no existe error y va perfecto...
Es así como debe quedar .. pues es requisito indespensable de la función session_start() que esté colocada -antes- de cualquier "salida" que se origine. En tu caso ese HTML de "contacto.php" es lo que origina esa "salida".
Ahora .. lo que podrías hacer es validar (si es que ese código de "contador.php" no lo hace ya .. algo tipo:
Código PHP:
<?
if (empty($_SESSION['alguna_variable'])){
die ("No está permitido el acceso directo a este script");
}
Esto con el fin de evitar que se ejecute el código de "contador.php" si se llama directo por el URL (sin llamarlo por un include() desde otro script)
Un saludo,