2013-05-03 118 views
0

在items.php

$filepath = mysql_real_escape_string($_GET['filepath']); 
$name = mysql_real_escape_string($_GET['name']); 
$type = mysql_real_escape_string($_GET['type']); 
echo $name,$type; 
echo '<td><a target=\"_blank\" href="'.$filepath.'" title=\"\">'.$filepath.'</a> '; 

錯誤:

Notice: Undefined index: name
Notice: Undefined index: type

結果:images/ch1.pdf?name=number?type=Memo

我想從名稱和類型的值。

+0

嘗試'的var_dump($ _ GET)'看名稱和類型 – alfasin 2013-05-03 05:03:42

回答

3

您只能使用一個問號?,然後單獨用&符號變量&

它應該看起來像

images/ch1.pdf?name=number&type=Memo 
0

如果你通過參數使用GET像index.php?name=foo&type=bar你的腳本,你應該能夠使用$_GET在您的PHP中接收它們,因此您的代碼看起來應該可以工作。

我建議取消mysql_real_escape_string。它可能會搞砸你的腳本。

+0

的值'mysql_real_escape_string'是很基本的安全步驟,它不擰腳本。他使用'?'來分隔變量而不是'&',這是問題的原因。我建議使用'mysql_real_escape_string'。 – 2013-05-03 05:08:51

+1

@Abhinav mysql_real_escape_string'是安全的,當你直接用DB來處理DB時,就像在insert/update語句中一樣。它不是用來創建html鏈接的。這可能會產生問題。爲此,urlencode/addslashes/htmlentities已經可用, – 2013-05-03 05:33:33

+0

執行MySQL查詢時應使用mysql_real_escape_string。當使用參數中的數據時,您應該解碼數據,而不是轉義數據。 – Jared 2013-05-03 05:40:52

相關問題