Php 使用PRG模式在最后一页显示表单数据的好方法是什么
我想使用PRG模式来防止表单重新提交,因为提交涉及发送邮件。但是,这种方法的问题在于,我似乎没有找到“正确”的方法来向用户显示重定向后发送的数据。目前我正在做一些类似的事情: 带有表单(Php 使用PRG模式在最后一页显示表单数据的好方法是什么,php,post-redirect-get,Php,Post Redirect Get,我想使用PRG模式来防止表单重新提交,因为提交涉及发送邮件。但是,这种方法的问题在于,我似乎没有找到“正确”的方法来向用户显示重定向后发送的数据。目前我正在做一些类似的事情: 带有表单(index.html)的某些页面 以及一个脚本页面formhandled.php,在成功后显示 <!-- header and menu html --> <?php echo $_GET["id"]; ?> <!-- footer html --> 这种方法
index.html
)的某些页面
以及一个脚本页面formhandled.php
,在成功后显示
<!-- header and menu html -->
<?php
echo $_GET["id"];
?>
<!-- footer html -->
这种方法的问题是,我认为这会暴露URL中输入的所有数据,因此可能太容易受到攻击。最重要的是,HTML字符串使得URL相当长。我可以想出另外两种方法来解决我的问题
formhandled.php
之后,我需要找到一些方法来删除这些文件,以防止这些信息在服务器上停留的时间过长因此,我的问题是:重定向后如何显示输入的表单数据?有两种方法可以传输该数据:
无论选择哪种解决方案,都必须确保数据迟早会自动丢弃。如果用户出于任何原因没有访问重定向页面,临时存储的数据将堆积在您的服务器上,这是您希望避免的。会话自动垃圾收集,可以自动清除Redis数据,使用数据库,您可以通过各种机制偶尔运行清理查询。Cookie和会话(几乎)是两件独立的事情。我将参加这次会议。我想说,会话始终是cookie,但cookie不一定是会话。Cookie只允许存储非常有限的数据量,并且很容易从客户端访问。会话将id存储在cookie中,但数据保留在服务器上。@ArtisticPhoenix会话将数据存储在服务器端,并将关联的id传输到客户端。这种传输不必通过cookies进行,这只是默认行为。@deceze-我知道这一点,但感谢您为其他人澄清这一点。。。我说的更多的是cookie vs session。
<?php
$data[0] = filter_var(INPUT_POST, "name", FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$data[1] = filter_var(INPUT_POST, "tel", FILTER_SANITIZE_NUMBER_INT);
$data[2] = filter_var(INPUT_POST, "mail", FILTER_VALIDATE_EMAIL);
// process rest of data and create mail
$mail->Body = getNiceHTML($data);
$mail->send();
header("Location: formhandled.php?id=" . urlencode($mail->Body));
exit();
?>
<!-- header and menu html -->
<?php
echo $_GET["id"];
?>
<!-- footer html -->