2011-05-22 45 views
4

我濾波用戶輸入以這種方式輸入濾波在PHP

$id= intval($_REQUEST['id']); 

我只接受整數在$id

有什麼我可以用來使它更安全嗎?

謝謝!

+0

你以後用'id'做什麼?把它放在數據庫中? – rzetterberg 2011-05-22 09:25:29

+1

請注意'$ _REQUEST'是'$ _GET','$ _POST'和'$ _COOKIE'的聯合。你不能說這個價值來源於哪裏。 – Gumbo 2011-05-22 09:26:29

+2

'$ id = intval($ _ REQUEST ['id']);'。這不是驗證。它是過濾器) – pltvs 2011-05-22 09:27:10

回答

1

您可以使用filter_var

<?php 
$var = filter_var('0755', FILTER_VALIDATE_INT); 
?> 

的漂亮的事情是,你可以做這樣的更復雜的驗證(分鐘lenght,默認值等),檢查php.net的filter_var頁面。

0

只是再次重申你的問題:

我過濾用戶輸入這樣 的$ id = INTVAL($ _ REQUEST [ '身份證']); 我只接受$ id中的整數。 還有什麼我可以用來使它更安全嗎?

我認爲你可以做一個過濾器真:假使用ctype_digit($ id);

您只接受$ id中的整數,什麼是整數:整數是一個數字,可以在沒有小數部分或小數部分的情況下編寫。例如,21,4和-2048是整數; 9.75,5.5和√2不是整數。整數集是實數的一個子集,由自然數(1,2,3,...),零(0)和自然數的負數組成(-1,-2,-3 ,...)。 >採取的形式維基百科