你说的方法都可以(当然各有利弊)
要我做的话,就用 session 做缓存
session_start();
$_SESSION['form'] = array_merge(isset($_SESSION['form']) ? $_SESSION['form'] : array(), $_POST);