0

「?」の後に来る値を取得したい 演算子、たとえば:

www.blabla.com/any.php?h r u 

この値「hr u」を取得し、データベースでこのキーを検索したいと考えています。私はすでにこれを試しました:

$_SERVER["QUERY_STRING"]

この関数は正常に動作していますが、これらの値を検索すると、次のクエリからデータベースに「h%20r%20u」のように出力されます。

$query="SELECT * FROM databasename WHERE colum LIKE'%$link%'";

この「 h%20r%20u レコードが見つかりません 」というリンクが出力されますが、データベースはこの値を見つけることができません。どうすれば問題を解決できますか?

4

2 に答える 2

3

urldecode関数を確認してください。

于 2012-06-16T14:13:57.407 に答える
0

指摘されているように、を使用する必要がありますurldecode($string)。SQL インジェクションの場合は、クエリの値をエスケープするだけです。

$link = mysql_real_escape_string(urldecode($_SERVER["QUERY_STRING"]));
$query="SELECT * FROM databasename WHERE colum LIKE'%$link%'";

mysqlまたはmysqliを使用してクエリを作成する場合。PDO::quotePDO を使用する場合は、エスケープする代わりに使用します。

于 2012-06-16T14:33:12.947 に答える