[リストへもどる]
一括表示
タイトル自動ジャンプのリンクを張りたいのですが・・
記事No8407
投稿日: 2012/03/27(Tue) 17:10
投稿者km
すみません、kmです。

またしてもハマってしまったので教えて頂きたいです。
メール送信後に自動でページを切り替えたいのですが、うまくいきません。
どうやら、ヒアドキュメント内で記述するのがダメのようで、色々記述方法を試したのですが、できませんでした。

print "Location: http://www.yahoo.co.jp/\n\n";
↑ヒアドキュメントの外だと飛べるのですが・・

@{[<meta http-equiv = "refresh" content = "1; URL=http://www.yahoo.co.jp">]};
↑この書き方もダメでした。

タイトルRe: 自動ジャンプのリンクを張りたいのですが・・
記事No8408
投稿日: 2012/03/27(Tue) 17:51
投稿者瀬戸っぷ   <setoppu@gmail.com>
> どうやら、ヒアドキュメント内で記述するのがダメのようで、色々記述方法を試したのですが、できませんでした。
> print "Location: http://www.yahoo.co.jp/\n\n";
> ↑ヒアドキュメントの外だと飛べるのですが・・

……どう記述しました?
周辺も込みで掲示してみて下さいな。

タイトルRe^2: 自動ジャンプのリンクを張りたいのですが・・
記事No8409
投稿日: 2012/03/27(Tue) 18:09
投稿者km
瀬戸っぷさん
すみません、色々いじってるので、ソースぐちゃぐちゃで汚いですが貼りますね。

#!/usr/bin/perl
# メールを送信後次のページに移動する。
use CGI;
$q = new CGI;
#print "<A HREF=\"Location:**********************************.cgi\">ジャンプ</A>";
#ここだと自動ジャンプで飛べる→print "Location: http://www.yahoo.co.jp/\n\n";
#print "Location: http://www.yahoo.co.jp/\n\n";
&header;# ヘッダー呼び出し(ヒアドキュメント開始)
#ここからは飛べない(ヒアドキュメント内部)
# ヒアドキュメント強制終了すればいける?
#print "Location: http://www.yahoo.co.jp/\n\n";
#print "Location: http://www.*****************/\n\n";# 完了ページに飛ぶ
#@{[&function()]};
#print "Location: http://*************************";
#@{[print "Location: *********************.cgi\n\n"]};
# --------------------------------------------------------------------------------------
footer;# footer呼び出し
#print "Location: http://www.yahoo.co.jp/\n\n";#×
@{[&linkjump()]};
#---------------------------------------------------------------------------------------
sub header{
# my $title = $_[0];
$title = "一応メール送信画面";
#print "Location: http://************************\n\n";# 完了ページに飛ぶ×
print "Content-type: text/html\n\n";
print <<"_EOM_";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<title>$title</title>
</head>
<body>
_EOM_
}
print "<A HREF=\"http://*************/*************.cgi\n\n\">ジャンプ</A>";#×
sub footer{
print <<"_EOM_";
#print "Location: http://www.yahoo.co.jp/\n\n";
print "<A HREF=\"http://***************.cgi\n\n\">ジャンプ</A>";
</body>
</html>
_EOM_
}
sub linkjump{
@{[print "Location:http://***********.cgi\n\n"]};# 完了ページに飛ぶ×
print "Location:http://***********************.cgi\n\n";# 完了ページに飛ぶ×
print "Location: http://www.yahoo.co.jp/\n\n";#×
print "\n\nlink_test\n";
@{[<meta http-equiv = "refresh" content = "1; URL=http://*************************.cgi">]};#×
}

タイトル別の方法を思いついてしまったのですがやり方がわかりません
記事No8410
投稿日: 2012/03/27(Tue) 18:35
投稿者km
すみません、kmです。

連投で申し訳ないのですが、ボタンを押してページに飛んだ後にcgiを走らせてメールを送ろうと考えたのですが、ボタンを押すタイミングでメールを送ったら良いのでは?と思いました。

やり方がわからない(変数の値の次ページへの引き渡し等)のでこちらも調べてみます。

タイトルRe^3: 自動ジャンプのリンクを張りたいのですが・・
記事No8411
投稿日: 2012/03/28(Wed) 00:25
投稿者瀬戸っぷ   <setoppu@gmail.com>
> sub header{
> # my $title = $_[0];
> $title = "一応メール送信画面";
> #print "Location: http://************************\n\n";# 完了ページに飛ぶ×
> print "Content-type: text/html\n\n";

「HTTPレスポンスヘッダ」と「ボディ」にっいて調べてみてください。
なぜダメなのかがわかるでしょう。

ってなワケで…
「HTTPレスポンスヘッダ」以外のところに
「Location: http://www.yahoo.co.jp/」とか書いても反応するわけもなく…。

>print <<"_EOM_";
>#print "Location: http://www.yahoo.co.jp/\n\n";
>print "<A HREF=\"http://***************.cgi\n\n\">ジャンプ></A>";
></body>
></html>
>_EOM_

ゴミ表示したいんですか?

タイトルできました!
記事No8412
投稿日: 2012/03/28(Wed) 16:15
投稿者km
瀬戸っぷさんありがとうございました!
色々調べて、ジャンプ方法のhtmlページを見つけて、無事自動ジャンプしました。