Php 自动完成表单和隐藏输入

Php 自动完成表单和隐藏输入,php,autocomplete,Php,Autocomplete,基本上,我的表单中有一个输入字段,在CSS中设置为display:none,我想知道自动填充程序是否会填充隐藏字段?我在加载时将字段的值设置为time(),并将其与表单提交的时间进行比较,以判断用户是人类还是机器人 以下是隐藏字段的代码: <?php $loadTime = time(); // Initial time that the page loads is checked against the time the form is submitted and if its

基本上,我的表单中有一个输入字段,在CSS中设置为
display:none
,我想知道自动填充程序是否会填充隐藏字段?我在加载时将字段的值设置为time(),并将其与表单提交的时间进行比较,以判断用户是人类还是机器人

以下是隐藏字段的代码:

<?php

    $loadTime = time(); // Initial time that the page loads is checked against the time the form is submitted and if its too fast, its probably a bot

?>

<input type="text" name="loadTime" id="loadTime" value="<?php echo $loadTime ?>" maxlenght="50" />


使用
display:none代替文本输入
您应该使用
。像这样,自动填充程序不会修改其值。另一个(也是更安全的)选项是将时间值存储为服务器变量,以便不能修改它

我想知道自动填充程序是否会填充隐藏字段

编辑:通过隐藏,我以为你是在问这个问题:

<input type="hidden"...

即使自动填充表单,表单也不会可见,因为它是在CSS中设置的。如果希望文本可见,请在JavaScript更改/填充输入时更改类CSS。您可以同时使用JavaScript填充文本和更改CSS。

因为您使用的是PHP,所以您可以始终存储加载时间在会话中,然后在表单发布后比较该时间。不需要这样使用表单变量。很高兴知道,谢谢。我已经考虑过有人操纵它的可能性,因此,我在服务器端验证post var,以确保它只是一个UNIX时间戳,而不是其他任何东西。谢谢,这很好我在服务器端验证post变量,以确保输入仅为UNIX时间戳,如果不是,则返回一个错误。