C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: cgiからhtmlを呼び出す方法を教えてください。


(過去ログ 112 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■66413 / inTopicNo.1)  cgiからhtmlを呼び出す方法を教えてください。
  
□投稿者/ 裕猫 (54回)-(2013/04/22(Mon) 13:14:36)

分類:[その他の言語] 

Apache 2.2.22
ActivPerl 5.14.2.1402
でCGIを作っています。
index.htmlで送信ボタンを押してsmtp.plでindex.htmlに入力した内容をメールで送信します。ここまではできるのですが
メール送信後にthankyou.swfというFLASHアニメを表示するarigatou.htmlを表示したいのですがうまくいきません。

Content-type: text/html

お問い合わせありがとうございました。
というsmtp.plの最後の部分が表示されるだけです。

homePage(フォルダー)
	|----index.html
	|----arigatou.html
	|---FLASH(フォルダー)
	|	|-------thankyou.swf
	|---cgi-bin(フォルダー)
		|-------smtp.pl

のようにフォルダーとファイルがあります。
smtp.pl の内容は

#!/Perl/bin/perl
print "Content-type: text/plain\n\n";
use CGI;
$q = new CGI;
変数代入
use     Socket;
$server = 'xxx.ne.jp' ;
$to = 'yyyy@hhh.co.jp' ;
$from = 'DDDDD.jp.net' ;
$subject = 'サンプルメール' ;
$data = $BUN;
require './jcode.pl';


 # ------------------------------------------------------- #
 # ヘッダ、データ部の作成
# ------------------------------------------------------- #

 # ------------------------------------------------------- #
 # SOCKETの作成
# ------------------------------------------------------- #

 # ------------------------------------------------------- #
 # コマンドの送信
# ------------------------------------------------------- #

 # -------- HELOコマンドの送信とレスポンスの確認 --------- #

 # -------- MAILコマンドの送信とレスポンスの確認 --------- #

 # -------- RCPTコマンドの送信とレスポンスの確認 --------- #

 # -------- DATAコマンドの送信とレスポンスの確認 --------- #

 # -------- ヘッダ、本文の送信とレスポンスの確認 --------- #

 # --------QUITコマンドの送信 -------- #

 # --------切断 -------- #

     close(SH); select(STDOUT);

     print "MAILは正常に送信されました。\nお問い合わせありがとうございました。\n";

 # --------------------
 # 改行コード変換
# --------------------
sub decode{
     
     my $inf = $_[0];
     $$inf =~ s/\x0D\x0A|\x0D|\x0A/\n/g;

 }
となっています。
切断のところをどのように書けばarigatou.htmlへ飛べるでしょう?

#!/Perl/bin/perl
print "Location: http://xxx.jp.net/arigatou.html\n\n";
exit;
単体ではうまくいきますが
 # --------切断 -------- #

     close(SH); select(STDOUT);

     print "MAILは正常に送信されました。\nお問い合わせありがとうございました。\n";
     print "Location: http://xxx.jp.net/arigatou.html\n\n";
では動きません。 よろしくお願いいたします。

引用返信 編集キー/
■66417 / inTopicNo.2)  Re[1]: cgiからhtmlを呼び出す方法を教えてください。
□投稿者/ ザ・カート (3回)-(2013/04/22(Mon) 14:57:20)
こんにちは。ザ・カートと申します。

> # --------切断 -------- #
>
> close(SH); select(STDOUT);
>
> print "MAILは正常に送信されました。\nお問い合わせありがとうございました。\n";
> print "Location: http://xxx.jp.net/arigatou.html\n\n";
> では動きません。 よろしくお願いいたします。

上記の、

> print "MAILは正常に送信されました。\nお問い合わせありがとうございました。\n";

の行を削除してみるとどうでしょうか?
そもそも、上記行の内容がどのように表示されることを期待していますか?
(例えば数秒間このメッセージが表示されて、その後リダイレクト?)

また、

> print "Location: http://xxx.jp.net/arigatou.html\n\n";

の行はhttpヘッダに書かれるものなので、ヘッダ行の前にbodyの内容を書いたら正しく解釈されないと思います。
引用返信 編集キー/
■66418 / inTopicNo.3)  cgiからhtmlを呼び出す方法を教えてください。
□投稿者/ 裕猫 (55回)-(2013/04/22(Mon) 15:15:17)
2013/04/22(Mon) 15:22:48 編集(投稿者)

No66417 (ザ・カート さん) に返信
>> print "MAILは正常に送信されました。\nお問い合わせありがとうございました。\n";
>
> の行を削除してみるとどうでしょうか?
> そもそも、上記行の内容がどのように表示されることを期待していますか?
> (例えば数秒間このメッセージが表示されて、その後リダイレクト?)
>
> また、
>
>> print "Location: http://xxx.jp.net/arigatou.html\n\n";
>
> の行はhttpヘッダに書かれるものなので、ヘッダ行の前にbodyの内容を書いたら正しく解釈されないと思います。
アドバイスありがとうございます。やってみたところメール送信後に
Content-type: text/html

Location: http://xxx.jp.net/arigatou.html
と表示されます。ジャンプできません。
Location: http://xxx.jp.net/arigatou.htmlは前にprint "Content-type: text/plain\n\n";
があると動かないとありました。そのせいと思われますが最初のprint "Content-type: text/plain\n\n";を削除しても同じ表示でしたのでメール送信部分で変数か何かで途中で
print "Content-type: text/html\n\n";が宣言されるようです。ここのルーチンは自分で作ったのではないのでよくわかりません。print "Content-type: text/html\n\n";を無効にして
途中で切り替えることはできないでしょうか?それらしき記事が見当たりませんでした。
引用返信 編集キー/
■66419 / inTopicNo.4)  Re[3]: cgiからhtmlを呼び出す方法を教えてください。
□投稿者/ 裕猫 (56回)-(2013/04/22(Mon) 15:28:25)
すみません。自己解決しました。
先頭の print "Content-type: text/plain\n\n";
を   print "Location: http://xxx.jp.net/arigatou.html\n\n";
に書き換えたらうまくいきました。最初にprint "Location: http://xxx.jp.net/arigatou.html\n\n";
を書くとそこでhtmlに飛んでメール送信本体が実行されないと勝手に思い込んでいていままで試さなかったんですが
メールの送信もできました。ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -