2010-07-09 19 views
0

你能告訴我intval的功能是什麼? 和這個呢?學習intval

'.intval($_POST['bla']).' 

回答

5

這是爲了防止SQL注入一個簡單的方法: -

INTVAL從該頁面提供了一個很好的例子,獲取變量

此表的整數值。如果您的查詢是這樣的:

$sql = "DELETE FROM salads WHERE id = " . $_POST['salad_id']; 

然後,如果用戶通過在而不是實際ID字符串「ID」,那麼所有的沙拉都將被刪除!

但是,如果你圍繞它包裝intval(),它會將任何不良敷料轉換爲整數零,並且不會影響沙拉。

$sql = "DELETE FROM salads WHERE id = " . intval($_POST['salad_id']); 
+2

反正我從不喜歡沙拉 – ggfan 2010-07-09 03:23:34

6

爲什麼不只是閱讀the manual article

echo intval(42);      // 42 
echo intval(4.2);      // 4 
echo intval('42');     // 42 
echo intval('+42');     // 42 
echo intval('-42');     // -42 
echo intval(042);      // 34 
echo intval('042');     // 42 
echo intval(1e10);     // 1410065408 
echo intval('1e10');     // 1 
echo intval(0x1A);     // 26 
echo intval(42000000);    // 42000000 
echo intval(420000000000000000000); // 0 
echo intval('420000000000000000000'); // 2147483647 
echo intval(42, 8);     // 42 
echo intval('42', 8);     // 34 
echo intval(array());     // 0 
echo intval(array('foo', 'bar'));  // 1 
+2

洛爾 - 你表現得好像那是,如果你谷歌INTVAL「 – 2010-07-09 03:16:03

+3

我想從人的答案是更「人性化」,那麼手冊 – ggfan 2010-07-09 03:24:12

+1

@ggfan你閱讀PHP手冊中的第一個結果?他們是來自人們的答案,他們對每種可能的細微差別都有重要的討論線索。 – 2010-07-09 03:55:44