2016-06-27 11 views
0

get変数で変換されたエンコードされたシンボルを削除する方法を教えてください。私はjavascriptといくつかのブラウザ側の検証でこれを行うことができると知っていますが、私はまた、これらがサーバ側で確実に削除されるようにしたいと思います。エンコードされたシンボルをGET変数から削除する方法PHP

たとえば、検索ボックスで、「How Old Are You?」と入力することができます。 Get変数は疑問符を%25253Fに変換します。変数のgetクエリからこの部分を削除するにはどうすればよいですか?私はフィルタリングされた後、このget文字列を再度使用したい。現在のコード:

$searchquery = str_replace(' ', '-',$_GET['search']); 
$uri = preg_replace('/[^-a-zA-Z0-9]/', '', $searchquery); 
$checkquery = $uri; 
$queryplain = str_replace('-', ' ',$uri); 
+0

'$ _GET'が入力されると、'? 'にデコードされます。 – AbraCadaver

+0

いいえ、$ uri変数のすべての特殊文字を削除したので、$ queryplainが表示されます:How Old Are You 25253f – DEVPROCB

+0

PHP関数[htmlspecialchars_decode](http://php.net/manual/en)を使用しない理由/ function.htmlspecialchars-decode.php)再度文字列をデコードするには? – Mathlight

答えて

0

私はそれを理解しました。投稿フォームが書き換えられ、.htaccessファイルによってリダイレクトされたためです。 search.phpのような形式から/ search /に変更すると、get変数の問題を修正することができ、上記のコードで特殊文字を削除することができました。

関連する問題