Ho corretto il codice ed ho:
Ho modificato il ciclo della stampa, usando il foreach.
Dentro il ciclo ti sei dimenticato di chiudere il tag option
Dentro dove inserisci la textarea ti sei dimenticato di aprire il tag form.
Sempre lì dentro ho inserito un campo hidden col nome del file che dovrai modificare.
Sempre lì ho inserito un altro hidden per farlo entrare sull'if di scrittura.
In poche parole non trovava il file da scrivere perché la variabile $_POST cambiava, prima arrivava dalla selezione della combobox, e l'indice files esisteva, poi arrivava dalla pagina con la textarea, dove l'indice files non era definito.
Codice PHP:
<?php
if ($act == 'files')
{
if(!$_POST['submit'])
{
$myDirectory = opendir(".");
while($entryName = readdir($myDirectory))
{
$dirArray[] = $entryName;
}
closedir($myDirectory);
$indexCount = count($dirArray);
Print ("$indexCount files
\n");
sort($dirArray);
echo '<form name="form" method="post" action="admin.php?act=files">';
echo'<select name="files">';
/*for($index=0; $index < $indexCount; $index++)
{
if (substr("$dirArray[$index]", 0, 1) != ".")
{
// Non mostra i file nascosti
if ($dirArray[$index] != "admin.php")
{
//Non mostra il file admin.php
echo '<OPTION value='.$dirArray[$index].'>'.$dirArray[$index].'';
}
}
}*/
foreach($file as $dirArray)
{
if(substr($file, 0, 1) == "." || $file == "admin.php") continue;
echo "<option value="{$file}">{$file}</option>";
}
echo '</select>
';
echo "<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"submit\" value=\"Leggi!\"></td></tr>\n
";
}
else
{
$filename = $_POST['files'];
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
echo '<form action=admin.php?act=files" method="post"><input type="hidden" name="mod" value="true">';
echo '<input type="hidden" name="files" value="'.$filename.'">';
echo "<tr><td>Contenuto: </td><td><textarea name=\"contenuto\" style=\"width:500px; height:200px;\">".$contents."</textarea></td></tr>
\n";
echo "<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"mod\" value=\"Modifica!\"></td></tr>\n";
echo '</form>';
if ($_POST['mod'])
{
write($_POST['files'],$_POST['contenuto']);
messaggio_box ("File",$_POST['files']."".$_POST['contenuto']);
fclose($handle);
}
}
}//fine files modifier
?>
E comunque non scrive su file..
Soluzioni? 
P.S Riguardo a write:
È una funzione che ho incluso io nel file funzioni.php. Apre il file, lo scrive e lo chiude.