CGI-BBS > CGI > Perl > WEBサーバー上のPDFフォームの入力データについて


カレッヂ
カレッヂ


質問者 KTH  投稿日 2004/11/15(月) 14:30:20
WEBサーバー上に入力フォーム付のPDFファイルを置き、そのPDFファイルに入力されたデータを
あるメールアドレスに送るコードを作成しています。

#!/usr/local/bin/perl

#送信先のメールアドレス
$mailto = 'xxxx@xxx.ne.jp';
#sendmailのpath
$sendmail = '/usr/sbin/sendmail';

#jcode.pl,mimew.plを取り込む
require 'jcode.pl';
require 'mimew.pl';

#フォームの入力内容を$bufに取り込む
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});

#入力内容をデコードする
@pairs = split(/&/, $buf);
foreach( @pairs ) {
($name, $value) = split(/=/, $_);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value, 'jis');
$forminput{$name} = $value;
}

#フォームで入力された情報を変数に代入する
$year = $forminput{'year1'};
$month = $forminput{'month1'};
$day = $forminput{'day1'};
$sec = $forminput{'section'};
$type = $forminput{'type'};
$text = $forminput{'text'};

$from = '管理者<yyy@yyy.ne.jp>';
$from = mimeencode($from);

$subject = 'データ';
$subject = mimeencode($subject);

#sendmailをオープン
if( open( MAIL, " | $sendmail $mailto" ) ) {
#メールヘッダーを送信する
print MAIL "TO: $mailto\n";
print MAIL "FROM: $from\n";
print MAIL "subject:$subject\n";
print MAIL "\n";
print MAIL "データ1:$year年$month月$day日\n";
print MAIL "データ2:$sec\n";
print MAIL "データ3:$type\n";
print MAIL "データ4:$text\n";
close( MAIL );

#メール送信完了
print "メールを送信しました\n";
}
else {
#メール送信に失敗した場合
print "メールの送信に失敗しました\n";
}

print "</body></html>\n";

としました。
データ入力、メール送信まではできたのですが、メール送信後に"メールを送信しました"のメッ
セージを出すHTMLファイルがサーバー上ではなく(http://www.abc.ne.jp/xxx.htmlではな
く)、PDF作成時のパス(自分のPC上のハードディスクのD:\..../xxx.html)になってしま
います。
PDFのプロパティを見てみましたが、このパスを直せる項目がなく、換えることができませ
んでした。
このメッセージのHTMLをサーバー上から出したいのですが、この場合、どのようにすればよいの
でしょうか?
申し訳ございませんが、ご教授のほど、宜しくお願い致します。<(_ _)>

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:TeraPad
FTPソフト:FFFTP
サーバ移転:していない
改造:していない
CGI習熟度:middle

回答者 domo  [削除]  投稿日 2004/11/15(月) 16:04:47
これが全文なら、CGI レスポンスが送信されていないように見えます。
Content-Type: text/html\n\n
とか
Location: url\n\n

とかいうやつです。
質問者 KTH  [削除]  投稿日 2004/11/15(月) 16:38:56
domoさん、早々のご返信、ありがとうございました。
おしゃる通りでした。
require 'mimew.pl';の後に、
print "Content-Type: text/html\n\n";
を入れて、他のPCで開いたところ、WEBサーバーから開くことができました。
誠にありがとうございました。大変助かりました。
また何かありましたら、宜しくお願い致します。<(_ _)>

このページは終了したので返信(回答)は書きこめません
 


Web裏技