nessuno dei due sistemi...io utilizzo questo poichè il js preferisco sempre evitarlo
in ogni caso io faccio così:
PAGINA FORM.PHP -> contiene solo il form, tutto quello che c'è tra tag <form>. Un piccolo esempio:
Codice PHP:
<form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post">
<fieldset>
<legend>Sono il form</legend>
<input name="name" type="text" <?php if(isset($name_value)) echo "vaule=\"".$name_value."\"" ?> />
....altri input che ti servono....
<button type="submit" name="inviato">Invia form</button>
</fieldset>
</form>
poi nella pagina vera e propria
Codice PHP:
<?php
if(isset($_POST['inviato']){//il form è stato inviato
$name_value = (isset($_POST['name'])?$_POST['name'] : "";
if(controlli di validità del form){
processa codice
}
else{
include("form.php");
}
}
else{//è la prima volta che carico la pagina
include("form.php");
}
?>
diciamo che questa è la struttura base che uso io....puoi pure aggiungere delle classi diverse ai vari elementi del form per farle diventare rosse se quel campo non soddisfa i requisiti, aggiungere del testo sotto ogni campo per spiegare che tipo di errore si è verificato, un errore generico in testa a tutto...insomma, è solo uno spunto questo