我想获取"?"运算符后面的值,例如:
www.blabla.com/any.php?h r u
我想获取这个值"h are you",并在我的数据库中搜索这个键。我已经尝试过这个:
$_SERVER["QUERY_STRING"]
这个函数工作正常,但是当我搜索这些值时,它从这个查询在我的数据库中打印出这样的"h%20r%20u":
$query="SELECT * FROM databasename WHERE colum LIKE'%$link%'";
它将打印链接此" h%20r%20u未找到记录",我的数据库找不到此值。如何解决我的问题?
查看 urldecode 函数。
正如所指出的,您应该使用 urldecode($string)
.对于 SQL 注入,只需转义查询中的值:
$link = mysql_real_escape_string(urldecode($_SERVER["QUERY_STRING"]));
$query="SELECT * FROM databasename WHERE colum LIKE'%$link%'";
如果您使用 MySQL 或 MySQLLI 进行查询。如果使用 PDO,请改用 PDO::quote
进行转义。