当为表单打开 Internet Explorer 自动完成功能时,HTML 表单中每个字段的条目应被缓存,并在用户第二次开始在表单中输入内容时显示为提示。
在我的网站上,该网站上存在的任何表单都不会显示自动完成功能。但其他网站却毫无问题地保留并提供该内容。
我的网站使用 PHP 作为脚本语言,所有内容均通过 SSL 交付。
我已确定问题与发出 start_session() 命令且站点运行 SSL 时 PHP 发送的缓存标头有关。
我联系了 Microsoft IE 安全团队的一个人,他们已经确认 IE 应该是这样工作的。这是电子邮件中的直接引用。
“这被认为是自动完成系统的一个功能。编写了重要的代码以使其表现出这种方式。”
当session_start(); php 发出的默认 http 标头是无缓存标头。这是微软代表的另一句话。
如果安全页面显示“不要缓存我”,则表明该数据是敏感的,因此自动完成数据本身可能是敏感的。诚然,这是一个简单的启发式方法。就我个人而言,我认为这有点愚蠢,但它一直存在。
支持“autocomplete=on”来覆盖默认启发式可能是一个很好的建议。
为了重新启用自动完成功能,我必须在 php 中发出此命令beforestart_session() 命令:
session_cache_limiter ('private, must-revalidate');
我确信还有其他方法可以操纵标头缓存控件以允许自动完成功能也能发挥作用。
这是我制作的 3 个示例表单的链接,以便您可以使用 IE 进行测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)