为表单启用Internet Explorers AutoComplete时,HTML表单中每个字段的条目应缓存并在用户第二次开始在表单中输入内容时显示为提示.
在我的网站上,永远不会为该网站上存在的任何表单显示自动完成功能.但其他网站保留并提供该内容没有问题.
我的网站使用PHP作为脚本语言,所有内容都通过SSL提供.
我已经确定问题与发出start_session()命令并且站点运行SSL时PHP发出的Cache-Headers有关.
我已经能够在微软的IE安全团队中找到一个人,他们已经确认这是IE应该如何工作的.这是电子邮件的直接引用.
"这被认为是自动完成系统的一个特性.编写了重要的代码,使其表现得如此."
当session_start(); 发出默认的http头,php发出的是一个无缓存头.这是微软代表的另一个引用.
如果安全页面显示"不要缓存我",则表明数据是敏感的,因此自动完成数据本身可能很敏感.不可否认,这是一个简单的启发式方法.我个人认为这有点傻,但它永远存在.支持"autocomplete = on"以覆盖默认启发式可能是一个很好的建议.
为了重新启用autoComplete功能,我必须在start_session()命令之前在php中发出以下命令:
session_cache_limiter ('private, must-revalidate');
我确信还有其他方法可以操作标头缓存控件以允许autoComplete运行.
这是我制作的3个示例表单的链接,因此您可以使用IE进行测试.