Il codice mi sembra a posto, è lo stesso identico che ho in un altro, solo che là in caso di errore mantiene i campi compilati, in questo no
In ogni campo del form ho questo
PHP:
<?php
session_start();
include ("funzioni.php");
if(isset($_POST['invia'])) {
$data_locale = time();
$nome = stripslashes(htmlspecialchars(ucfirst(trim($_POST['nome']))));
$citta = stripslashes(htmlspecialchars(ucfirst(trim($_POST['citta']))));
$suoemail = htmlspecialchars(strtolower($_POST['suoemail']));
$suoemail = str_replace(" ","",$suoemail); // Toglie gli spazi interni nella email
$messaggio = stripslashes(htmlspecialchars(ucfirst(trim($_POST['messaggio']))));
$validator = htmlspecialchars(trim($_POST['validator']));
$_SESSION['nome'] = $nome;
$_SESSION['citta'] = $citta;
$_SESSION['suoemail'] = $suoemail;
$_SESSION['messaggio'] = $messaggio;
In ogni campo del form ho questo
PHP:
<...value="<?php if(isset($_SESSION['nome'])){ echo $_SESSION['nome'];}else{ echo "";} ?>"