2012-06-16 16 views
0

我想獲得值後會出現'?'運算符,例如:獲得後面的值?運算符在URL中

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

我想獲取此值「h r u」,並在我的數據庫中搜索此密鑰。我已經嘗試過這樣的:

$_SERVER["QUERY_STRING"] 

此功能工作正常,但是當我搜索這些值將打印像從該查詢這個「H%20R%20U」在我的數據庫:

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

它會打印鏈接這個「h%20r%20u找不到記錄」,我的數據庫找不到 這個值。我如何解決我的問題?

+5

**警告**您的代碼可能對sql注入攻擊是可以理解的。 –

+0

只是一個快速放在一邊 - 應該是'SELECT * FROM tablename',而不是'databasename'。 – halfer

+0

用'+'替換空格。這是在網址中做空間的方式。 – Bonzo

回答

3

檢出urldecode函數。

+0

是的,這是你在找什麼。但是,也想想SQL注入... – Fanda

+0

感謝很多解決:)很高興看到很快回復從未見過任何這樣的網絡 – Abid

0

正如指出的那樣,您應該使用urldecode($string)。 對於SQL注入,剛剛逃生的價值在您的查詢:

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

,如果你使用MySQL的庫MySQLi 進行查詢。 如果您使用PDO,請使用PDO::quote代替轉義。

相關問題