Beh... da come hai scritto lo script mi stupirei se le tue pagine non si comportasserò così!

<? include("protezione.php");?>

<?
exec("./on1");
header("location: index.php"); ?>
Programmato in questa maniera, lo script esegue l'exec (peraltro senza mandare alcun output), poi passa all'istruzione successiva, cioè il redirect alla pagina index.php.

Capisco che secondo te ci sia una anomalia, ma suppongo che prima di procedere devi progettare bene quello che vuoi che il tuo script faccia.

Un'altra cosa: cosa devi fare eseguire allo script una volta loggato?