avevo letto solo la prima parte
per l'errore devi mettere un a+ invece che r+ alla linea 7 e controllare che la cartella abbia il permesso di scrittura.
Codice PHP:
<?php
$nome=$_POST['nome'];
$content=$_POST[nome];
$dir="cartella/";
$dir.="nomefile.txt";
$a=nl2br(implode("", file("cartella/nomefile.txt")));
if (preg_match("/$_POST[nome]/" , $a)){
die("nome già in uso");}
$handle=fopen($dir,a+);
fwrite($handle,$content);
fclose($handle);
echo nl2br(implode("", file("cartella/nomefile.txt")));
?>
credo sia giusto