您确实应该使用POST重定向GET模式来处理这个问题,但是如果您以某种方式结束了PRG不可行的位置(例如,表单本身是包含的,防止重定向),您可以散列一些请求参数,以便根据内容生成一个字符串,然后检查您还没有发送它。//create digest of the form submission:
$messageIdent = md5($_POST['name'] . $_POST['email'] . $_POST['phone'] . $_POST['comment']);//and check it against the stored value:
$sessionMessageIdent = isset($_SESSION['messageIdent'])?$_SESSION['messageIdent']:'';
if($messageIdent!=$sessionMessageIdent){//if its different:
//save the session var:
$_SESSION['messageIdent'] = $messageIdent;
//and...
do_your_thang();
} else {
//you've sent this already!
}