Il messaggio d'errore te lo mostra perchè... hai fatto un IF senza molto senso:
[php]if("nome") //[/php]
Cosa avresti voluto fare? TI mostra il messaggio perchè quello che hai scritto equivarrebbe ad un:
[php]if("nome" == TRUE) //[/php]
Il che è vero in booleano ( stringhe, interi diversi da 0, array e quant'altro con un qualsiasi valore sono considerati come VERI, in quanto non = a 0 ).
Per il referer.. avresti dovuto fare così:
[php]
$errori = array();
if(empty($_SERVER["HTTP_REFERER"]))
$errori[] = "Errore referer";
[/php]
Per quello che dici tu, si potrebbe fare. Personalmente assegnerei una precisa chiave dell'array per ogni posizione, ad esempio:
$errori[0] per il referer
$errori[1] per il primo campo
$errori[2] per il secondo...
etc etc... Tuttavia ti consiglio di prendere ancora un pò la mano con la logica if e con gli array monodimensionali prima di passare a queste applicazioni un pò più complesse.
Oppure, potresti fare i controlli direttamente in javascript:
<form onsubmit="check(this);"> function check(obj) { var inputs = obj.getElementsByTagName("input"); for ( var key; key <= inputs.length; key++) if( inputs[key].value.rtrim().ltrim() == "" ) alert("campo "+inputs[key].name+" vuoto!"); }( Ho scritto il codice al volo, non ti assicuro sia corretto )
Comunque sia, se sei interessato a questo tipo di approccio ( comunque complementare a quello in php, che devi mantenere per motivi di sicurezza ), dovresti postare nell'apposito forum, se no i mod ci linciano XD.
Se hai dubbi non esitare a postare