ciao a tutti.
ho un form che invia i dati ad una pagina PHP che esegue controlli (ad esempio controlla che tutti i campi del form siano stati completati).
in caso di errore si viene rediretti di nuovo al form, dove viene segnalato il tipo di errore commesso.
tutto questo viene fatto mantenendo i campi del form come variabili di sessione, in modo che dopo il reindirizzamento questi non vadano persi (vengono stampati dentro ai campui di input).
come esempio ho fatto 2 pagine, e il codice è questo.
FORM.PHP:
Codice PHP:
<?php
session_start();
$nome = $_SESSION['nome'];
?>
<form action="controlli.php" method="post">
<input name="nome" type="text" id="nome" value="<?php echo $nome; ?>">
<input type="submit" name="button" id="button" value="Invia">
</form>
CONTROLLI.PHP:
Codice PHP:
<?php
// recupero col post la variabile del modulo
$nome = $_POST['nome'];
// apro la sessione e rendo di sessione la variabile acquisita
session_start();
$_SESSION['nome']=$nome;
header ("location:form.php");
?>
il problema è che se dopo un primo redirect cambio il contenuto del campo di input, con il secondo redirect, nella casella di testo stampa ancora il primo nome inserito (in pratica la variabile di sessione non viene aggiornata, devo per forza riavviare il browser).
come posso fare per ovviare il problema senza chiudere la sessione?
vorrei evitare di chiudere la sessione perchè poi nel form vero e proprio che dovro' costruire ci saranno una decina di campi, e non vorrei che in caso di un secondo redirect (dovuto a un secondo errore nella compilazione del form) i campi del form precedentemente inseriti vengano cancellati...
Ah! il locale funzionerebbe tutto, è su server che non va!!
grazie a tutti