カレッヂ |
質問者 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をサーバー上から出したいのですが、この場合、どのようにすればよいの でしょうか? 申し訳ございませんが、ご教授のほど、宜しくお願い致します。<(_ _)>
プロバイダ参照: |
回答者 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裏技 |