PHP防止刷新提交主要是为了避免用户通过刷新页面重复提交表单数据,导致数据重复插入数据库或产生其他不良后果。这通常通过在前端和后端采取一些措施来实现。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>防止刷新提交示例</title>
<script>
function submitForm() {
document.getElementById('myForm').submit();
window.location.href = 'success.html'; // 提交后重定向到成功页面
}
</script>
</head>
<body>
<form id="myForm" action="submit.php" method="post">
<input type="text" name="data" required>
<button type="button" onclick="submitForm()">提交</button>
</form>
</body>
</html><?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['token']) && $_POST['token'] === $_SESSION['token']) {
// 处理表单数据
echo '提交成功';
} else {
echo '非法请求';
}
} else {
$_SESSION['token'] = bin2hex(random_bytes(32)); // 生成Token
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>防止刷新提交示例</title>
</head>
<body>
<form action="" method="post">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<input type="text" name="data" required>
<button type="submit">提交</button>
</form>
</body>
</html>
<?php
}
?>原因:可能是由于Session未正确启动或Token生成与验证不一致。
解决方法:
session_start()。原因:用户可能希望在提交后看到一些反馈信息,而不是直接跳转到新页面。
解决方法:
通过以上措施,可以有效防止PHP表单的刷新提交问题,提升系统的稳定性和用户体验。
没有搜到相关的沙龙