No.7ベストアンサー
- 回答日時:
また具体例忘れてました。
出力HTMLの先頭にMETAタグで
<meta http-equiv="Refresh" content="15;URL=http://www.test.com/パス/cgiY.cgi">
などとすれば表示15秒後に指定のCGIにとびます。
追伸:
前の回答でREFRESHのつづり間違えてました。スイマセン。
何回もまことに有り難うございます。
解決しました。
全ていわれていることは理解できたのにうまくいかないので、
一から見直しましたところ、
print "Content-type: text/html\n\n";
が冒頭に入っていました。
これを各rtnに移したところ、あっけなく解決してしまいました。
大変お世話になりました。
(昨日当サイトのメンテのためにお礼が遅くなりました)
No.6
- 回答日時:
お察しの通りです。
Locationより先に他のHTTPヘッダを出してしまうとLocation部分はコンテンツの1部として認識されてしまいます。
ブラウザ側の命令の受付は一回こっきりですから制御をうつしたいのなら何も表示してはいけません。
いったん表示させてから移したいのなら出力HTML内に仕込むしか方法はありません。
手っ取り早い方法としては<META>タグのRefleshを使うかJavaScriptしか手は無いでしょう。
No.5
- 回答日時:
本当にすいません。
誤解のないようにもうちょっと具体的に書きます。
↓↓↓↓↓↓↓↓↓↓↓↓↓この下から
#!/usr/local/bin/perl
## ここにあなたの処理:ただしprint文など表示系の命令は一切無し
## 最後にこれ↓
print "Location: ./cgiY.cgi\n\n";
↑↑↑↑↑↑↑↑↑↑↑↑↑この上まで
以上です。
何回も有り難うございます。
ここが問題でして。
>#!/usr/local/bin/perl
これはcgiの全く頭(1行目)ですよね、
>## ここにあなたの処理:
ここが問題です、
具体的にはここにデータの吐き出しを書いています。
>ただしprint文など表示系の命令は一切無し
データの書き出しはありませんが、
サブrtnでhtmlは書き出しています。
これが駄目なのでしょうか。
>print "Location: ./cgiY.cgi\n\n";
これがそのまま出て(表示)されてしまいます。
やはり、直下にないというのが原因でしょうか。
しつこくて済みません、
宜しくお願いします。
No.3
- 回答日時:
HTTPヘッダについて
エンドユーザが使用しているブラウザへの命令だと思ってください。
命令のケツは「\n\n」であることをまず念頭において・・・。
通常のCGIだと「Content-type: text/html\n\n」がエンドユーザのブラウザに渡されてそれ以降をHTMLのテキストデータが来るよと判断されその処理を行ないます。
「Content-type: text/html\n\n」ならベタテキスト。
「Content-type: image/png\n\n」ならPNGのバイナリデータ。
という具合なのですが、
それらは「Content-type」というぐらいなので内容のタイプを指定しますよというのがわかります。やろうと思えばCSVデータを送ってExcelでデータを開かせることも可能です。
他にもいろいろあるのですが、ここにアクセスしろ!というのが「Location:」なのです。
こんな感じでわかります?
No.2
- 回答日時:
単純に渡すだけならHTTPヘッダ使って
print "Location: ./cgiY.cgi\n\n";
と書いてはどうでしょう。
データを渡したい場合、GETメソッドならそのまま上記CGI名以降にパラメータをつけてやればよいのですが、POSTするとなるとcgiY.cgiの作り方しだいになってしまいます。
1.systemやexecを使ってパラメータとして渡す → CGIのPOSTメソッドでは渡されないので@ARGVを使う(これは厳密にはCGIとはいいがたいし、処理終了時にはcgiXに制御が戻る)
2.Socketなどモジュールを使って自身のサーバにポート80にアクセスして、HTTPリクエストでCGI指定し、「Content-Length」でデータサイズとデータをPOSTする。
3.面倒なのでやってみたことはありませんがSTDINに直接パラメータを入れることも可能かも知れません。
回答になってますでしょうか?
有り難うございます。
まさに単純に渡すだけでよいのです、
パラメーターも何も不要です。
ただ、
>HTTPヘッダ使って
が分からないのです。
実は同じことをperlジャンルで聞いたところ、
同じことを教わりました。
その時にも分からなくて、調べた結果、
javascriptにたどり着いてしまい、
<html>
<head>
,,,,,,,
location: http://,,,,
と書いたところうまく渡せたのですが、
この場合はjavascriptなので、携帯電話では使えず途方に暮れたのです。
そしてもう少し調べた結果、
perlでもこのHTTPヘダーがあるという事は分かったのですが、
実際に動いたのは、
#!/usr/local/bin/perlの直下に書いたときのみでした。
やりたいことは、
cgiXの中で単純にいろいろやりたいことを書き、
最後にcgiYにコントロールを渡せればokなのです。
ということで、
具体的な書き方を教えていただければ嬉しいのですが。
やりたいことがうまく説明できずに申し訳在りません。
いいたいことは、cgiYにコントロールを渡すのですが、
javascriptではなく、perl(cgi)で解決したいのです。
なにとぞ宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI cgiの注釈が出来ない 2 2022/04/27 09:15
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
NAMAZUでの文字化け
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
FC2レンタルサーバーライトでの...
-
perl 矢印演算子 -> の使い方
-
ラジオボタンのグループ化
-
HP-UX (IA64)にVNC等でリモート...
-
cgiファイルのダウンロード方法
-
メールフォームのCGIでデータが...
-
検索インデックスを複数指定し...
-
ユーザの所属するグループを取...
-
Dreamweaverでのパーミッション...
-
cgiからcgiを呼び出す方法
-
cgi perl 同じ変数で一つはカン...
-
画像アップ時のエラー
-
SFTPなどは使わないホームペー...
-
CGIのEncodeエラーについて
-
特定のCGIだけ、作動するかわり...
-
PHPが動いてCGIが動かない?
-
vbでFTPサーバーに対して、サー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SSIでリダイレクトできないでし...
-
cgiでのフォントのサイズ変更方...
-
cgi内から別のcgiを呼び出す。
-
safariでcgiが表示されず cgi...
-
SSIの『#exec cmd』と『#exe...
-
CGIカウンターの画像が表示され...
-
cgi→csvが文字化け
-
cgiからcgiを呼び出す方法2
-
cgiの自動起動
-
winsockでcgiと通信する方法
-
リファラを取得するためのCGI
-
CGIでCGIを呼び出す方法
-
swfファイルをどのブラウザでも...
-
アクセスカウンターのつけ方
-
KENT WEBのページカウンタのタ...
-
URL リダイレクト
-
CGIの掲示板で使うBBcodeなどつ...
-
cgiについて
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
おすすめ情報