0

我遇到的问题是我必须继续删除缓存或表单没有提交任何新内容。例如,我在表单中输入了新数据并提交,但它没有插入到 mysql 中。我必须先删除缓存。

Onsubmit.php是一种形式。 done.php从接收$_POST变量submit.php 。在顶部done.php我有session_cache_limiter('private_no_expire');。我有这个,所以当用户按下后退按钮并返回时done.php,他们不会收到页面过期消息。

我只添加session_cache_limiter('private_no_expire');了摆脱页面过期消息。有没有其他选择,所以当我用户按下后退按钮时,他们不会收到页面过期消息?...或者我该如何解决这个问题?

4

1 回答 1

1

一种替代方法是在提交失败或成功后将 301 重定向从表单处理器发送回 submit.php。这将防止在使用返回按钮时出现提示。它将跳过提交过程回到用户之前所在的任何页面(通常是 submit.php)。

不过,您必须修改 submit.php 中的逻辑来处理这种情况。您不想使用用户以前的条目重新填充表单字段,并且还能够显示有关表单未提交原因的任何错误消息。

处理此问题的一种方法是将所有表单提交和任何错误消息保存到会话中,并在重新显示 submit.php 时,检查会话中是否有任何表单数据。如果是这样,请使用会话中的先前条目重新填充表单字段,并同时显示会话中的任何错误消息。

完成.php

// validate form inputs here...

if (!$formIsValid) {
    // save $_POST values to $_SESSION
    // save any error message to $_SESSION
    header('Location: /submit.php');  // redirect back to form
    exit;
} else {
    header('Location: /success.php'); // redirect to success page
    exit;
}
于 2012-12-03T20:23:11.127 回答