電子書籍の厳選無料作品が豊富!

perl cgiでまだまだわからないことだらけなので、まだ質問します・・・

print $q->start_html(-title=>"画面", -BGCOLOR=>'#ffffff'),
$q->header(-charset=>"Shift_JIS"),# Content-type: text/htmlを書き出します
$q->p('<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#ff00ff">'),
$q->p('<FONT COLOR="red">aaa</FONT>'),
$q->hr,
$q->p('<form method="post" action="ppp.cgi">'),
$q->p('<FONT color="blue">【a】</FONT>'),
$q->p('<INPUT TYPE="text" NAME="mmm" VALUE="" SIZE="25" MAXLENGTH="25">'),
$q->p('<FONT color="blue">【b】</FONT>'),
$q->p('<INPUT TYPE="text" NAME="nnn" VALUE="" SIZE="25" MAXLENGTH="25">'
$q->p('<FONT color="blue">【c】</FONT>'),
$q->p('<INPUT TYPE="text" NAME="ttt" VALUE="" SIZE="25" MAXLENGTH="25">'
$q->p('<FONT color="blue">【d】</FONT>'
$q->p('<select name="question" size="1" multiple="multiple">'
$q->p('<option selected="selected" value="aaa">aaa?</option>'),
$q->p('<option selected="selected" value="bbb">bbb</option>'),
$q->p('<option selected="selected" value="ccc">ccc</option>'),
$q->p('</select>'),
$q->p('<FONT color="blue">【e】</FONT>'),
$q->p('<INPUT TYPE="text" NAME="ans" VALUE="" SIZE="25" MAXLENGTH="25">'),
$q->p('<FONT color="blue">【f】</FONT>'),
$q->p('<textarea name="freeans" rows="5" cols="30" value="$initText" wrap="hard">$initText</textarea>'),
#$q->p('<textarea name="freeans" rows="5" cols="30" value=$initText wrap="hard">あいうえお </textarea>'),
$q->p('<input type=submit value="送信">'),
$q->p('</form>'),# 送信データここまで
$q->end_html;

としているのですが、表示のほうが
【a】

テキストボックス入力欄

【b】

テキストボックス入力欄

【c】

テキストボックス入力欄
・・・

と、テキストボックス入力欄の上下に改行が入っていしまいます。
消す方法はございますか?pタグがダメなんでしょうか?

それとContent-Type: text/html; charset=Shift_JIS が最上部に表示されてしまいます。
   
   $q->header(-charset=>"Shift_JIS"),# Content-type: text/htmlを書き出します

の行が原因だということはわかるのですが・・・・変更方法がわからないです。
教えて頂きたいです。よろしくお願いします。

A 回答 (1件)

一行ずつ$q->p()してるので、


 <p><FONT color="blue">【a】</FONT></p>
 <p><INPUT TYPE="text" NAME="mmm" VALUE="" SIZE="25" MAXLENGTH="25"></p>
になっているのでしょう。pタグは分かりますよね?


$q->p()は消して、こっちの方がラクかも。

# EOF(任意の文字)で囲まれた範囲を$bodyに代入する
my $body = <<EOF;
<body>
<font...
 .
 .
 .
EOF # ココ、先頭にスペース入れたりすると動かないので注意

print $body;


CGIのモジュールはパラメータ受け取ったりするのは便利ですが、
ちょっとしたHTML書くだけなら

#!/usr/bin/env perl
my $msg = "<div>Hello, World!</div>";

print "Content-type: text/html\n\n";
print $msg;

これでも。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
助かります。

お礼日時:2012/05/16 13:27

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