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

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

なにかヒントがありましたら教えてください。

A 回答 (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>
    • good
    • 0
この回答へのお礼

おっしゃる方法で問題解消できました

お礼日時:2007/11/13 21:20

 参考になるか分りませんが、パッと見で一文字を、1バイトとしか認識してませんよね。


 漢字コードなどは、2バイトで形成されてますから、フォントなどの指定が要るのではないでしょうか?
    • good
    • 0

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