こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

HTMLについて

HTMLについて分からない事がありますので、ご教授願います。

<INPUT TYPE=TEXT NAME=TEST VALUE="abc"def">

上記のように、テキストボックスに「abc"edf」を初期表示させる1文を書きました。
しかし、「abc」しかテキストボックスには初期表示されません。
原因は「abc」の次にある「"」がVALUEに代入する文字列の最後とみなされている
ためなのですが、文字列中の「"」を文字として認識させて「abc"def」と初期表示
させたいのですが、何か良い方法はないでしょうか?

実は、powerscriptでプログラミングをしています。
そのため、VALUEに指定する文字列は変数を指定していますので、
「VALUE=''」にしてもその変数に「'」が入力されていたら同じ現象が生じてしまいます。

なんとか、「"」を文字として認識させる方法はないのでしょうか?

投稿日時 - 2001-04-13 11:58:15

QNo.63249

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

7人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.8

私は今までいろいろな言語で Web アプリケーションを開発してきたのですが
selenity さんが言われている 4 キャラクタの置換は必須です。

質問されている画面は、確認ページのようなものだと思いますが
</BODY> や CSS を入力された場合はどうなりますか?
操作者がだれか分かりませんが、第三者に Javascript などの
ロジックを入力された場合、致命的なセキュリティホールになる可能性も
あります。

出すぎたことを言うようですが、
急いでおられるのは納期がせまっている(過ぎている?)からだとと思いますが
ユーザさんにご相談されてはどうでしょうか?

投稿日時 - 2001-04-14 12:16:53

ANo.7

私もselenityさんと同意見です。
HTMLの仕様ですから「&quot;」にすべきだと思います。

valueの部分が変数ならなおさらです。
プログラムをしているのだから、仕様に合うように文字変換をするべきだと思います。

投稿日時 - 2001-04-13 17:54:29

ANo.6

普通であれば不等号は「&lt;」、「&gt;」、
ダブルクォートは「&quot;」
アンパーサント(&)は「&amp;」
の様に記述するのが筋だと思うのですが、、、

投稿日時 - 2001-04-13 14:58:28

ANo.5

<INPUT TYPE=TEXT NAME=TEST VALUE="abc\"def">
と、「"」の前に「\」を入れてみてはどうですか?

投稿日時 - 2001-04-13 14:32:36

ANo.4

このように
<INPUT TYPE=TEXT NAME=TEST VALUE='abc"def'>

「'」で囲めば「"」が表示されるようにも出来ますよ~

投稿日時 - 2001-04-13 12:57:21

補足

画面でテキストボックスに入力された値を格納したいので、「'」で囲んでも、「'」が入力されてしまったら、結局同じことになってしまいます。。。

投稿日時 - 2001-04-13 14:11:38

ANo.3

<INPUT TYPE=TEXT NAME=TEST VALUE="abc"def">
です。
「"」で囲まれた場合は"で「"」を表記します。

投稿日時 - 2001-04-13 12:21:28

ANo.2

「"」は、「&quot;」と入力すればいいですよ。
従って、
<INPUT TYPE=TEXT NAME=TEST VALUE="abc&quot;def">
と書けばいいと思います。

Dreamweaverだと、このあたりはちゃんと変換してHTMLにしてくれるので、便利ですよ。

投稿日時 - 2001-04-13 12:14:50

補足

いろいろと調べた結果、エスケープ文字を入力すると正しく表示してくれる事は分かったのですが、なんぜ、テキストボックスに入力されるデータを格納するので、ユーザさんに「"はエスケープ文字を使って下さい」なんて言えません。
powerscriptで文字置換してくれる関数ってないのかなぁ???

投稿日時 - 2001-04-13 14:08:59

ANo.1

こんにちは.

<INPUT TYPE=TEXT NAME=TEST VALUE=abc"def>

でもダメですか?
文字列を囲む"をはずしているだけですが.

投稿日時 - 2001-04-13 12:12:56

補足

早速のご回答ありがとうございます。

試しに上記の方法で実行してみたのですが、
「>」が入力された場合に、「>」以降の文字が画面上にラベルみたいに表示されてしまいました。

投稿日時 - 2001-04-13 14:07:26