2016-08-12 11 views
-1

なぜmysql_real_escape_stringがこのコードで動作しないのですか?なぜこのコードでmysql_real_escape_stringが機能しないのですか?

通常、ロードページの入力がこのようになります。

http://image.free.in.th/v/2013/ie/160812064246.jpg 

しかし、あなたはこのような理由入力ルックページwww.example.com/test.php?value_1=">

をロードします。

http://image.free.in.th/v/2013/ia/160812064312.jpg 

どうすればいいですか?

test.phpを

<?PHP 
include("connect.php"); 
$ex_search_value = mysql_real_escape_string($_GET['value_1']); 
?> 

<input placeholder="PLEASE ENTER" value="<?PHP echo $ex_search_value; ?>" style=" margin: 0px; width: 810px;height: 33px;line-height: 17px;line-height: 33px\0;^line-height: 33px;padding: 0px;margin-right: -1px;padding-left: 5px;-webkit-box-shadow: 0 2px 3px rgba(0,0,0,0.1);-moz-box-shadow: 0 2px 3px rgba(0,0,0,0.1); box-shadow: 0 2px 3px rgba(0,0,0,0.1); "> 
+1

あなたは本当にmysql APIを使用してはいけません。 –

+0

mysql_real_escape_stringに接続変数を渡す必要があります – Saurabh

+0

[大脱走(またはテキスト内のテキストを扱うために必要なこと)](http:// – deceze

答えて

-2

MySQLのAPIが廃止されて、あなたは本当にそれが、これはそれが接続オブジェクトと文字列表示されます構文 mysqli_real_escape_string(connection,escapestring); ですmysqliの

を使用しようとする使用すべきではありません逃げたい

この例の良い例は

+1

絶対に間違っていますが、mysql_real_escape_stringはこれまでにない最悪のものですが、2ではなく1つの引数しか必要としません。ここで使用される関数は、mysqliをベースにしています –

1

mysql_real_escape_stringはデータをエスケープして、安全にSQLクエリーに入れてからMySQLに送信できます。 (NB:mysql_real_escape_string is part of an obsolete API you should have stopped using about half a decade ago。)

value="<?PHP echo $ex_search_value; ?>" 

SQLではありません。これはHTMLで、Webブラウザに送信します。

HTMLはSQLとは異なる言語です。エスケープルールは微妙に異なりますが、まったく違っています。

データをエスケープしてHTMLに挿入できるようにするには、htmlspecialchars()を使用する必要があります。

関連する問題