2013-05-03 45 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

相关问题