2012-08-12 83 views
0

基本上,我的表單中有一個輸入字段,在CSS中設置爲display: none,我想知道自動填充程序是否填充隱藏字段?我將該字段的值設置爲加載時的time(),並將其與表單的提交時間進行比較,以確定用戶是人還是bot。自動完成表單和隱藏輸入

這裏是我的隱藏字段代碼:

<?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" /> 
+0

正因爲您使用的是PHP,您可以隨時將加載時間存儲在會話中,然後在表單發佈後比較該時間。不需要這樣使用表單變量。 – BenOfTheNorth 2012-08-12 09:25:10

回答

1

而不是與display:none;文本輸入,你應該使用<input type="hidden" .../>。像這樣的自動填充程序不會修改它的值。另一個(也是更安全)選項是將時間值存儲爲服務器變量,以便它不能被修改

+0

謝謝,很高興知道。我驗證服務器端的post var以確保輸入只是一個UNIX時間戳,如果不是,我返回一個錯誤。 – 2012-08-12 09:29:29

1

我想知道自動填充程序是否填入隱藏字段?

編輯:通過隱藏我還以爲你問這個:

<input type="hidden"... 

回答是否定的。另外,我會刪除隱藏的字段,因爲有人可以操縱該值。我寧願將時間數據存儲在會話中,因爲它存儲在服務器上而不是客戶端計算機上。

+0

很高興知道,謝謝。而且我已經考慮過有人操縱它的可能性,因此,我在服務器端驗證了post var,以確保它只是UNIX時間戳,沒有別的。 – 2012-08-12 09:26:10

0

即使自動填充填充表單,它將不可見,因爲它是在CSS中設置的。如果您希望文本變得可見,請在JavaScript更改/填充輸入時更改CSS類。您可以同時使用JavaScript來填充文本和更改CSS。

相關問題