Nidificare gli if non è problematico ma può portare confusione.
Sarebbe sempre meglio non nidificarli se non necessario.
Codice PHP:
//Eseguo un controllo su alcune caselle, se sono vuote mostro un errore
if ($_POST['titolo'] == "" /*|| $_POST['regia'] == NULL || $_POST['note'] == NULL*/) {
echo "Dati mancanti";
}else{
if (isset($_POST['prestito'])) {
if($_POST['a']=="") {
echo "[b]Errore: Riempi il campo a[/b]";
header( "refresh: 3; url=form_insert.php" );
}
}
}
Ricapitolando:
1. se POST titolo è uguale a "" ritorna errore altrimenti
2. se è settato POST prestito esegui:
3. se a è uguale a "" mostra messaggio errore e redirect
Qui però non vedo una cosa: come fa a sapere il sistema se ci sono stati errori o meno?
Il codice continuerà e sarà inevitabile che scriva a video ciò che è scritto di seguito, tra cui anche:
Codice PHP:
//Stampa a video i dati inseriti e da conferma dell'inserimento
echo "<h1>Riepilogo dei dati inseriti</h1>";
echo "I dati sono stati inseriti correttamente.
";
Dovresti fare un controllo. Se, ad esempio, la variabile i è uguale a 1 ci saranno degli errori, se uguale a 0 è tutto ok.
Esempio:
Codice PHP:
//Settiamo la variabile i uguale a 0 perché non ci sono errori fino ad ora
$i=0;
//Eseguo un controllo su alcune caselle, se sono vuote mostro un errore
if ($_POST['titolo'] == "" /*|| $_POST['regia'] == NULL || $_POST['note'] == NULL*/) {
echo "Dati mancanti";
$i=1;
}else{
if (isset($_POST['prestito'])) {
if($_POST['a']=="") {
echo "[b]Errore: Riempi il campo a[/b]";
header( "refresh: 3; url=form_insert.php" );
$i=1;
//Qui potresti mettere un exit(); perché fai un redirect
}
}
}
//Dopodiché se non ci saranno errori scriveremo a video:
if($i==0){
echo "<h1>Riepilogo dei dati inseriti</h1>";
echo "I dati sono stati inseriti correttamente.
";
}
Capito il ragionamento?
Consiglio: vai a capo correttamente, il codice ti sarà più facile da leggere.
PHP non legge gli accapi e i tab quindi crea il codice più leggibile e ordinato possibile e diminuiranno gli errori (o comunque saranno visualizzabili meglio).