2013-11-02 86 views
2
<?php 
    echo $_GET['id']; 
?> 

對我來說看起來不太安全..我們最好選擇顯示GET元素嗎?

對所有的特殊字符有點像preg_replace或者htmlspecialchars

回答

3

取決於你正在做的事$_GET['id'];

如果您想要將其插入數據庫,只需使用Prepared Statements。 [足夠]

如果您只是想在您的HTML頁面上顯示它,請使用此代碼。

<?php 
    echo htmlentities($_GET['id']); 
?> 
+2

+1 ,但我不認爲'$ _GET ['id']'和「準備好的語句」需要大膽。只是我的意見,這就是全部:) –

+2

'htmlentities()'不是必要的(而不是'htmlspecialchars()')。 – ComFreek

3
<?php 
    echo htmlspecialchars($_GET['id']); 
?> 
1

這應該是足夠了:

htmlspecialchars($_GET['id'], ENT_QUOTES, "UTF-8"); 
2

如果是id,我覺得應該是數字 - 然後echo intval($_GET['id']);

3

用htmlspecialchars()如果它是一個字符串,或轉換爲適當的類型,如果它是數字(INTVAL(),或(INT)等),例如:

$id = (int)$_GET['id']; 
//or 
echo (int)$_GET['id']; 
+0

'htmlspecialchars'對於數值也是足夠的。 –

+1

這是足夠的,但如果它應該是一個int,那麼如果存在文本或其他垃圾,則轉換爲int將至少給出0。 – AbraCadaver