- ベストアンサー
入力フォームに半角スペース以降が表示されない
Perlでプログラムを組んでいます。 「山田 太郎」とデータを書き込みました。 それを$nameという変数に入れてPerlで出力し、 HTMLのフォームで表示しようとすると 「山田」までしか表示されません。 フォーム以外ではちゃんと「山田 太郎」と表示されます。 入力フォームはINPUTTYPE=text maxlength=20 です。 スクリプトは以下のような感じです。 HTML出力部分のみ。 # フォームからの情報を連想配列 %form に入れる &init_form($kanjicode) ・・・・ print <<"EOD"; Content-type: text/html <HTML> <HEAD> $contenttype <TITLE>$title</TITLE> </HEAD> <body> $tabletag <UL> <LI>$nameさんパスワードは大文字小文字の違いに注意してください。</LI> ↑「山田 太郎」とちゃんと表示される </UL> <FORM ACTION=$thisurl METHOD=$method> <TABLE> <TR> <TD>氏名</TD> ↓ここでは「山田」までしか表示されない <TD><INPUT type=text size=20 maxlength=20 name=$name value=$name></TD> </TR> <TR> <TD>パスワード</TD> <TD><INPUT type=password size=4 maxlength=4 name=pass value=$pass></TD> </TR> <TR> <TD COLSPAN=2> <INPUT type=hidden name=cmd value=new2> <INPUT type=submit value=登録する> </TD> </TR> </TABLE> </FORM> </BODY></HTML> EOD なにかヒントがありましたら教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(snip) <TD>氏名</TD> ↓ここでは「山田」までしか表示されない <TD><INPUT type=text size=20 maxlength=20 name=$name value=$name></TD> (snip) ・・上記の name=$name はたぶん name=name では?・・間違いではないけど・・ 属性値に半角スペースが含まれるとそこで値の終了とみなされます。 タグの属性値はクオートで囲うのが基本です。 <TD><INPUT type="text" size="20" maxlength="20" name="$name" value="$name"></TD>
その他の回答 (1)
- xcode_15
- ベストアンサー率18% (19/102)
参考になるか分りませんが、パッと見で一文字を、1バイトとしか認識してませんよね。 漢字コードなどは、2バイトで形成されてますから、フォントなどの指定が要るのではないでしょうか?
お礼
おっしゃる方法で問題解消できました