Php 如何在页面重新加载时删除缓存数据?

Php 如何在页面重新加载时删除缓存数据?,php,html,browser-cache,Php,Html,Browser Cache,我有一张登记表。如果用户填写了所有必填字段 当他在没有提交表单的情况下重新加载页面时,字段包含用户输入的值。我希望它们像第一页加载时一样是空的。 我已将value=”“指定给字段,但它们仍然包含以前输入的值 <form id="registration_form" name="registration_form" method="post"> <input name="first_name" id="first_name" value=""> <input nam

我有一张登记表。如果用户填写了所有必填字段

当他在没有提交表单的情况下重新加载页面时,字段包含用户输入的值。我希望它们像第一页加载时一样是空的。 我已将value=”“指定给字段,但它们仍然包含以前输入的值

<form id="registration_form" name="registration_form" method="post">

<input name="first_name" id="first_name" value="">
<input name="last_name" id="last_name" value="">
<input name="user_email" id="user_email" value="">
<input name="status" id="status" type="hidden" value="active">

</form>

如果您想按照要求首先删除缓存(编辑前),有很多方法

在页面上添加元标记

<meta http-equiv="Cache-control" content="no-cache">
这些将在另一个主题中讨论

如果只想删除字段上的值

使用


在head标记的顶部。

这是表单自动填充,而不是页面缓存。您可以通过以下方式禁用自动完成:

<form id="registration_form" name="registration_form" method="post" autocomplete="off">

记得在表单中添加autocomplete=“off”。这是一些浏览器的自动完成问题,那么每次加载注册页面时,您都需要使用id技巧,比如:

http://localhost/register.php
您可以手动尝试,看看它是否适用于您测试过的浏览器,例如,将此地址加载到您的浏览器上,看看它是否仍然自动完成表单:

http://localhost/register.php?id=23
您可以添加id=anynumber,这恰好工作得很好,我使用CSS导入来实现这一点。要使其更为PHP,您可以编写如下代码:

$number = rand(1,100);
header("Location: register.php?id=$number");

希望能有所帮助

@웃웃웃웃웃 没有需要的代码。他通常会问,如何实现这样一个目标@웃웃웃웃웃 你要的代码,在这里,请检查我的帖子没有服务器端删除缓存的方法。为什么客户机希望允许服务器控制其缓存,随心所欲地删除其中的所有内容,或者允许服务器查看缓存?但是,您可能可以在每次加载页面时为每个字段的id传递一个新的哈希,尽管这可能不可靠。这不是缓存,它指的是页面的HTML内容。这是表单自动填充。@Barmar那么我该如何解决这个自动填充问题呢?谢谢你的解决方案,但它对隐藏字段不起作用。一定是发生了一些你没有显示的事情。隐藏字段不应该自动填充吗?用户不能自己填写。基本上这是一个巨大的模块,隐藏字段是用javascript维护的,但我是说,如果我用隐藏字段制作简单的html表单,它不会在页面重新加载时变为空,当我按下Ctrl+F5时,它会变为空。我无法解释这一点。您确定要重新加载页面,而不是使用“后退”按钮吗?浏览器在使用“后退”按钮时的操作各不相同,有些浏览器会将表单内容放回原处。
http://localhost/register.php?id=23
$number = rand(1,100);
header("Location: register.php?id=$number");