dポイントプレゼントキャンペーン実施中!

(1)テキストエリアに入力
<textarea rows="4" cols="40" name="data"><?= $arr['data'] ?></textarea>

(2)phpmyadminのデータ更新
$sql = "update basis set data = '{$arr[data]}' ";
$result=mysql_db_query("{$DbName}", "{$sql}");

上記の流れで、(1)のテキストエリア入力欄にhtmlのタグ(<a>とか)を入力してphpmyadminに
データを格納したいのですが、うまくいきません。テキストエリアにタグを使うことは
できないのでしょうか?

A 回答 (1件)

>テキストエリアにタグを使うことはできないのでしょうか?


textarea内に htmlタグをいれても 文字列としてしか認識しません。
inputも同様です。
textarea でなく、 div,span,他 p やらなんやら なら いけます。

>(1)のテキストエリア入力欄にhtmlのタグ(<a>とか)を入力してphpmyadminにデータを格納したい
form で method="post" なり get なり sessionなり・・・ で phpに値をとばして
formに入力された値をphpで 変数に代入
データベースに接続して、
クエリ発行
データベースの接続を切る。
実際は、$_POST $_GET などには
悪意のある入力されたとき壊れるので、特殊文字エスケープを入れます。
タグを入れたいとのことで、 < >/ あたりは はずしておいてもいいかもしれませんが、
; " ' = あたりは 危ない気がします。

phpmyadminは、mysqlをphpで見やすく管理しやすくしたツールです。

脱線
$sql = "update basis set data = '<formで飛ばされたデータ>' ";
<formで飛ばされたデータ>に 「a; drop table basis;」 と 打たれたら どうしますか?
$sql = "update basis set data = a; drop table basis; ";
    • good
    • 0
この回答へのお礼

わかりやすい解説ありがとうございます。
もともとnoris02さんの説明通りのソースにはなっていました。
ただ、自分が作成したものでなく、ちゃんと理解もしていなかったため、
流れを確認することが出来ました。

ソースを見直してみたところstrip_tagsでタグを削除していた
ことが原因でした。よく調べずに質問してしまい申し訳ありません。
もっと勉強しないとまずいですね。本当にありがとうございました。

※自身で管理するシステムなので脱線にあるようなことはないと思います。
drop tableを打たないよう気をつけます。

お礼日時:2011/02/14 10:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!