0

安全を保つために言われた

表示される場合は、Mysql に送信する前に mysql_real_escape_string を使用します

よく私はします:

....

   $b = mysql_real_escape_string($b);
   $r_int = mysql_real_escape_string($r_int);
   $r_ext= mysql_real_escape_string($r_ext);

   $id_tmp = $_SESSION['id'];
   $insert = "INSERT INTO table (nombre, coment, iduser,fecha)
                           VALUES ('$b','$r_int','$id_tmp',NOW())";
....

しかし、それらの値に何かが含まれている場合、<a href="where">go</a>それは次のようになります<a href="\where\">go</a>

そして…行けない!ハハ、

どうすればこれを解決して安全に保つことができますか?

ありがとう!

4

2 に答える 2

2

あなたが持っているmagic_quotes_gpcか、その同類の1つがオンになっているように聞こえます。古いバージョンの PHP ではすべてが自動エスケープされていたため、mysql_real_escape_string()(当然のことながら) そうすることで、実際には別のエスケープ層が追加されました。

適切な解決策は、マジック クォートをオフにすることです。それらは非推奨であり、オフにする必要があります。使用し続けますmysql_real_escape_string()

注: magic_quotes をオフにするには、php.ini から、または httpd.conf/.htaccess の php_value を介して行う必要があります。スクリプト内の ini_set() から実行することはできません。これは、ini_set が実行されるまでに、PHP が既に魔法の引用を行っているためです。

于 2011-02-25T01:53:22.137 に答える
1

PHP の stripslashes 関数

echo stripslashes($string);

スラッシュを取り除き、元のように表示します

于 2011-02-25T01:50:17.060 に答える