TAMURA Toshihiko
tamur****@bitsc*****
2002年 12月 5日 (木) 22:03:16 JST
永田さん、こんばんは。 田村です。 > Conditions, Privacy & Shipping with MySQLの件なのですが、これのhack部分に > はMySQLに対して「mysql_query」などとSQL命令を発行しているのですが、 > osCommerceでは(例えば管理側では/admin/includes/functions/database.php)に記 > 述されているfunctionを経由してSQLを発行していますよね。 動かすだけなら、実質的にはどちらでもいいんですが、 永田さんがされたように、tep_db_query / tep_db_fetch_array で 統一するのがいいと思います。 必要なときにはSQLをログに落としたりすることもできますから。 > また、管理側でMySQLへの書き込みなのですが、HTMLを書き込む場合に(例え > ば<table border="0" cellpadding="6" cellspacing="2" width="100%">など)、"等 > はエスケープされて<table border=〓"0〓"...と言う状態でMySQLへ格納されてしまう > のですが(ホントはここが問題?)、オリジナルだとそのまま出力する為、めちゃく > ちゃなHTMLになってしまうので、出力部分で、 > > <?php echo $row['Text']; ?> > > とした部分を、 > > <?php echo stripslashes($row['Text']); ?> > > としてみたのですが... データベースに記録する前に、シングルクォート(')やダブルクォート(")を クォート(エスケープ)して、表示のときにそれを取り除くというのが 基本ですから、それでいいです。 addslashes()で明示的にクォートしているのでないのなら、 php.ini の設定で magic_quotes_gpc=On になっているために、 自動的にクォートされているんでしょうかね。 それなら、magic_quotes_gpc=Off の場合でもうまく動くように、 addslashes()を入れておいた方がいいと思います。 -- 田村敏彦 / 株式会社ビットスコープ E-mail:tamur****@bitsc***** http://www.bitscope.co.jp/