• 締切済み

別のページに戻りたい

こんにちは。 以前、ASPで似たような質問をさせてもらったのですが、再度質問です。 perlでCGIを作成しています。 現在、a.cgiからb.cgiをリンクで呼び出し、b.cgiからはフォームでc.cgiを呼び出し、c.cgiからはLocationでa.cgiに自動で戻るようになっています。 a.cgi->b.cgi->c.cgi->a.cgi ここで、b.cgiをx.cgiからも呼び出したいと思ったのですが、最後、c.cgiからはやはりa.cgiに戻ってしまいます。 この場合に、c.cgiから、x.cgiへ戻るようにすることは可能でしょうか? a.cgi->b.cgi->c.cgi->a.cgi x.cgi->b.cgi->c.cgi->x.cgi とりあえず、1つの方法として、HTTP_REFERERをhiddenでb.cgiの画面に埋め込んでc.cgiに渡すことは考えました。 なるべくブラウザの環境に依存したくないので、javascriptやクッキーは使わないとして、他に方法はないでしょうか?

  • CGI
  • 回答数2
  • ありがとう数1

みんなの回答

回答No.2

> とりあえず、1つの方法として、HTTP_REFERERをhiddenでb.cgiの画面に埋め込んでc.cgiに渡すことは考えました。 この方法ではブラウザの設定やセキュリティーツールの設定によりリファラーを出さない場合は戻れなくなりますので、 a.cgiやx.cgiからb.cgiに対して、 hiddenフィールドで「a.cgiから送信しました」などの情報を送ってやる方が良いと思います。 さらにその情報をc.cgiに渡す事で、戻り先を指定できるようになると思います。

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.1

JavaScript、本当にダメなんですか? 残念ですね。 一発なんですが。 <a href="#" onclick="history.go(-3);">入口にもどる</a> この方法だと、ブラウザの進む・戻るボタンに連動という特典もあるんですが。

関連するQ&A

  • a.cgi経由で、b.cgi実行

    a.cgiからLOCATIONで、b.cgiを実行したいのですが、 1つ条件がありまして、b.cgiを実行する場合は必ず a.cgi経由出なければいけないというチェックをしたいのです。 LOCATIONを使用した場合、環境変数「HTTP_REFERER」に値がセットされないみたいなのでNGでした。 またパラメータを持たせるにしても、LOCATIONはGETしか使えないので、アドレスを見ればばればれになってしまいNGです。 何かいい方法はないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • 環境変数リファラーの値をを最後のページまで持ちたい。

    表題わかりにくくてすいません。 商品ごとの申し込みフォームを作成しています。 まず、 $ENV{'HTTP_REFERER'};でどのURLのページから来たか判別させて、 その最初に入ってきたリファラーの値をページ遷移のときに最後の ページまでもっていきたいのです。 ■1ページ目(HTML)名まえ年齢、商品番号などを記入 <A.HTML> ■2ページ目(CGI)住所 <B.CGI> sub page2{} ■3ページ目(CGI)確認画面。<C.CGI> sub page3{} ■4ページ目(CGI)サンクスページ <D.CGI> sub thanks{} 以上の4ページの構成ですが、最初の1ページ目のHTMLが商品ごとにちがっていて、どの商品のページのHTMLからきているのか判別させて、サンクスページで、URLごとに別の件名の確認メールを自分あてに送信できるようにしたいので、最初のページがどのURLなのかをリファラーで判断させたいのです。商品によって、入力項目を変えるたりもしています。(POSTで商品ごとのhiddenタグを送ればいいと思うかもしれませんが、今回は$ENV{'HTTP_REFERER'};についてのやり方でやりたいのです。) ですが、$ENV{'HTTP_REFERER'};を2ページ目のサブルーチンのなかに記述しても2ページ目ではどこからきているのか$ref = $ENV{'HTTP_REFERER'};などと記述すればわかるのですが、この最初のリファラーの値を3ページ目、4ページ目に持っていくのにはどうしたらいいのでしょうか?全部のページのサブルーチンに$ref = $ENV{'HTTP_REFERER'};を書いてしまうと、そのひとつまえのURLが認識されてしまいます。ですが、最初のリファラーの値をずっと最後のページまで持っていたいのです。 どなたか、方法がわかりましたらご教授願います。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • セットしたクッキーを別のドメインで有効にするには

    cgi(perl)を使用してクッキーをセットし、別のドメインに飛んでいくスクリプトを作っています。 例えば、cgiはwww.a.comにあり、クッキーをセットした後、www.b.comに飛びます。 www.b.comで、セットしたクッキーが有効になるようにしようと思ってます。 このような記述で試してみましたが、http://www.b.com/test/ でクッキーが有効になっていません。 書き方が間違っているのでしょうか? print "Set-Cookie: VALUE=hogehoge; path=/test/; domain=www.b.com\n"; print "Location:http://www.b.co.jp/test/\n\n"; ちなみに、クッキーが有効になっているかどうかの判断は、Bookmarkletの「クッキーを表示」を使用して確認しています。 http://bookmarklet.daa.jp/ 宜しくお願いします。

    • ベストアンサー
    • CGI
  • REFERERの取得

    a.php <INPUT type="button" onClick="location.href='b.php'"> としてボタンをクリックしたらb.phpに飛ぶようにして b.php $referer = $_SERVER[’HTTP_REFERER’]; print $referer; としたら、 何も表示されないので、REFERERが取得できていないということなんでしょうか?それと、どういう場合にREFERERは取得できないんでしょうか?

    • ベストアンサー
    • PHP
  • JavaScriptのwindow.openでリファラーが取得できない。

    <SCRIPT language="JavaScript"> <!-- function OpenWin(){ window.open("sample.cgi,"new","width=500,height=250"); } // --> <A href="#" onClick="OpenWin()">オープン</a> 上のようにsample.htmlのページ内にwindow.openのJavaScriptを書いています。 sample.cgi内に$ENV{'HTTP_REFERER'}を埋め込んでいるのですがリファラーが取得できません。 window.openの場合はリファラーは取得できないのでしょうか?

    • ベストアンサー
    • CGI
  • 別ページの指定した座標へリンクしたい

    こんにちは。 以前 http://oshiete1.goo.ne.jp/kotaeru.php3?q=725989 で現在表示中の指定した座標へリンクする方法で <A href="javaScript:scroll(x,y)">●●</a> を教えて頂きました。 これを応用して別ページの指定した座標へリンク できるようにしたいと思い、 <A href="javaScript:index.asp#scroll(x,y)">●●</a> と指定を変えてみたのですが、うまくいきません。 別ページはaspなのですが、別ページへは座標指定で リンクはできないのでしょうか? どなたかご存知の方は教えて下さい。 よろしくお願いします。

  • 別フレームからページ切り替え

    こんにちわ。 ちょっと急ぎで解決した問題なんですが よろしくお願いします。 aとbの二つにフレームを分けたページにて aからtop.b.location.href="c.html";として bフレームのページを切り替えているのですが bフレームにhttpsのページを表示した場合、 その後はaフレームから切り替えできなくなります。 (location.hrefを実行する行でエラー) これはセキュリティ上の仕様でしょうか? 回避策などありましたらあわせて教えていただけると 助かります。

  • JavaScriptで取得した値をASPで受け取りたい

    現在、アクセス解析の為にindex.aspというファイル内でREMOTE_ADDR、HTTP_USER_AGENT、HTTP_REFERERの値を取得し、CSVデータとして保存しています。 ですが、index.aspはアクセスされた時に一番初めに表示して欲しいページにも関わらずaspファイルである為、index.htmlファイルを作成し、その中に呼び込む形にしています。 でもそれですと、HTTP_REFERERで取得できる値はindex.aspを表示する前に必ず通るindex.htmlだけになってしまいます。(サイト内の他のページからindexに戻ってきた場合は正しい値がとれる) これだと正しい解析結果が求められないので、index.htmlの方にJavaScriptのコードを埋め込み、リ HTTP_REFERERの代わりにしようと考えました。 <frame src="index.asp?ref=***" name="xx"> とすれば値はindex.aspに渡せるのですが(これが行って良い方法なのかはわかりませんが)、受け渡す値はその都度生成されるもので、このタグの中にそのJavaScriptで出した値をどう埋め込んでやればいいのか解らず、困っています。 何か良い方法はありませんでしょうか。 index.aspはどうしてもaspファイルである必要があるのでここの仕様は変更できません。 もし無理な場合は、「無理だ。」の一言もお待ちしています。 よろしくお願いします。

  • Perl CGIで、アップロードができない

    Perl my $fhandle = $query ->upload('A'); HTML <INPUT TYPE="HIDDEN" VALUE="C:\temp\1.txt"/> ボタンクリックで、JavaScriptでHTMLのhiddenに値をセットしています。 その値をPerlでuploadすると、値がセットされません。 <INPUT TYPE="FILE" で、手動でセットすると上手くいきます。 なんんとかHIDDENでできないでしょうか? FILEでしか駄目な場合、JavaScriptで、FILEにセットする方法をご教授下さい。 今、現状はIFRAMEでFILEで選択したファイルパスをボタンクリックで、メインのFORMのHIDDENに渡して、CGIを呼んでいます。

    • ベストアンサー
    • Perl
  • サーバーAでcgiで認証し、サーバーBへ飛ばす

    サーバーAでcgiでユーザーIDとパスワードで認証し、サーバーBの一般からアクセスされたくないURLに飛ばす方法を教えてください。 サーバーB側で、どのような受け口を作ればよいのかで悩んでいます。 cgi(Perl)のスキルと、Apacheのスキル少々です。 ヒントだけでもいただけましたら後は勉強します。 (1),サーバーAで、cgi(Perl)を使用してユーザー認証します。 (2),認証OKの場合、cgiからサーバーBへリダイレクトします。 (3),サーバーBでは、上記の認証OKのアクセスだけを許可します。 サーバーBには、htmlやpdfなどを置いています。 これを、.htaccessのREFERER認証を使用して、サーバーAのREFERERを持ったものだけを 通す設定にしてみました。 この場合、最初に呼んだhtmlは表示されますが、そのhtmlからimgタグで呼んだ画像などは 表示されません。 また、そのhtmlから同じディレクトリ内の他のhtmlへ飛ぶこともできません。 特にREFERER認証に拘りません。何か良い方法はありませんでしょうか。

専門家に質問してみよう