Ad.1 Jeśli nie masz tam danych takich jak hasło do sprawdzania to może ci sprawdzać JS w onsubmit formularza i w razie niepowodzenia return false - jeśli musisz sprawdzać przez php to przed cofnięciem - zapisz wszystkie wprowadzone przez usera dane do ciasteczek a w skrypcie formularza sprawdź na początku czy istnieją jakieś ciasteczka i ew. wypełnij nimi formularz.
Ad.2 Wątpię żeby zanikała, raczej coś źle robisz - zapuść lepiej trochę kodu.
Przykład w PHP:
<?php
function zmienna($nazwa,$domysl){
if(isset($_COOKIE['f_'.$nazwa])) return $_COOKIE['f_'.$nazwa]; else
return $domysl;
}
?><form method=post action="sprawdz.php">
<input type=text name="zmienna1" value="<?= zmienna('zmienna1','pole') ?>"><br>
<input type=text name="zmienna2" value="<?= zmienna('zmienna2','') ?>"><br>
<input type=text name="costam" value="<?= zmienna('costam',' cos ') ?>"><br>
<input type=text name="zmienna3" value="<?= zmienna('zmienna3','') ?>"><br>
<input type=submit value="Wy?lij">
</form>
<?php
foreach($_POST as $klucz => $wartosc)
setcookie('f_'.$klucz,$wartosc,time()+60);
Header("Location: index.php");
?>
dane będą czekać na usera przez minutę w formularzu - możesz wydłużyć czas i nawet po zamknięciu przeglądarki będą one pokazane - jeśli tak nie chcesz to użyj sesji zamiast ciasteczek, albo skasuj ciasteczko przy formularzu od razu po jego odczytaniu.