OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

GETのうけとり。

  • すぐに回答を!
  • 質問No.108143
  • 閲覧数42
  • ありがとう数3
  • 気になる数0
  • 回答数8
  • コメント数0

お礼率 30% (17/55)

http://127.0.0.1/test2.cgi?jikanst=0&jikanend=24&youbi=0&rinji=0

以上のデータを、取得したいのですが、参文献の通りのつもりなのですが、「サーバーが見つからないか、DNS エラーです。」という表示がでてきます。なぜでしょうか?
よろしくお願いします。

#!/usr/bin/perl

$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
$buffer = $ENV{'QUERY_STRING'};

@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($key, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$form{$key} = $value;
}

$jikanst = $form{'jikanst'};
$jikanend = $form{'jikanend'};
$youbi = $form{'youbi'};
$rinji = $form{'rinji'};

print "Content-type: text/html";
print "$jikanst,$jikanend,$youbi,$rinji";
通報する
  • 回答数8
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.8
レベル14

ベストアンサー率 50% (1122/2211)

> 以下がtest.cgiです。なにとぞよろしくお願いします。

ああ、「移行する」って、普通に submit するだけなんですね。
ふ~ん、普通に動いてるCGIは、ある、と。

「サーバーが見つからないか、DNS エラーです。」ってエラーだから、
とりあえず perl のスクリプト以外にも、問題があるのだろうと思って、
色々書いたんですが、スクリプトだけの問題なんですかね。

質問にあったスクリプトの最後の二行を以下のようにしたらどうですか?

> print "Content-type: text/html";
> print "$jikanst,$jikanend,$youbi,$rinji";

print "Content-type: text/html\n\n";
print "<html><body>";
print "$jikanst,$jikanend,$youbi,$rinji";
print "</body></html>";
お礼コメント
Iam2888

お礼率 30% (17/55)

おおお、それでできました。感動です。
そんなんで解決できるんですね。やっぱ、perl難しいですねぇ。
ありがとうございます。
投稿日時 - 2001-07-25 12:13:06
-PR-
-PR-

その他の回答 (全7件)

  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

あなたは、この test2.cgi をどこに置いたのでしょう? > 「サーバーが見つからないか、DNS エラーです。」という表示がでてきます。 の表示の通り、ブラウザにサーバが分からないんです。 > http://127.0.0.1/test2.cgi?jikanst=0&jikanend=24&youbi=0&rinji=0 ** ...続きを読む
あなたは、この test2.cgi をどこに置いたのでしょう?

> 「サーバーが見つからないか、DNS エラーです。」という表示がでてきます。

の表示の通り、ブラウザにサーバが分からないんです。

> http://127.0.0.1/test2.cgi?jikanst=0&jikanend=24&youbi=0&rinji=0
*********

の部分の問題で、Perl のレベルの問題ではないです。

Content-type: 行の出力に問題があるのは、No.1 の回答の通り。
補足コメント
Iam2888

お礼率 30% (17/55)

 私のPC内にて、ローカールサーバを立ち上げて使用してます。
test.cgiから、GETで、test2.cgiへデータを移行したいのですが、
test.cgiは、問題なく作動し、http://127.0.0.1/test2.cgi?jikanst=0&jikanend=24&youbi=0&rinji=0と、アドレスバーにも表示されます。
ちなみに、test.cgiとtest2.cgiは、同じフォルダに入ってます。
 やっぱり、perlがおかしいのでしょうか?
投稿日時 - 2001-07-23 18:23:49
  • 回答No.1
レベル13

ベストアンサー率 29% (334/1115)

Content-typeなどのヘッダ情報を書き出したあとは、 空白行を入れてください。 例:print "Content-type: text/html\n\n"; ...続きを読む
Content-typeなどのヘッダ情報を書き出したあとは、
空白行を入れてください。

例:print "Content-type: text/html\n\n";
お礼コメント
Iam2888

お礼率 30% (17/55)

さっそくありがとうございます。
まったくそのとおりですね(笑)
投稿日時 - 2001-07-23 18:22:44
  • 回答No.3
レベル13

ベストアンサー率 29% (334/1115)

>サーバーが見つからないか、DNS エラーです パソコンにサーバのソフトを立ち上げていない場合は、 プログラムの実行は出来ません。 ↓Windows用のサーバのソフトの一例 ...続きを読む
>サーバーが見つからないか、DNS エラーです
パソコンにサーバのソフトを立ち上げていない場合は、
プログラムの実行は出来ません。

↓Windows用のサーバのソフトの一例
  • 回答No.4
レベル10

ベストアンサー率 36% (60/164)

下の方々の回答プラス、 #!/usr/bin/perl → #!/usr/local/bin/perl としてみては?
下の方々の回答プラス、

#!/usr/bin/perl → #!/usr/local/bin/perl

としてみては?
  • 回答No.6
レベル13

ベストアンサー率 37% (331/872)

こんにちは、honiyonです。  test.cgiからtest2.cgiを呼び出しているとのことで、test.cgiからtest2.cgiを呼び出す方法に問題があるのかと思います。  アドレスバーに表示されたURL(http://127.0.0.1/test2.cgi?...)を手で打ち込んで実行した場合は正しく表示されますでしょうか?  というわけで、test.cgiからのtest2.c ...続きを読む
こんにちは、honiyonです。

 test.cgiからtest2.cgiを呼び出しているとのことで、test.cgiからtest2.cgiを呼び出す方法に問題があるのかと思います。
 アドレスバーに表示されたURL(http://127.0.0.1/test2.cgi?...)を手で打ち込んで実行した場合は正しく表示されますでしょうか?

 というわけで、test.cgiからのtest2.cgiの呼び出し方法について検討&質問してみてください(..
  • 回答No.5
レベル14

ベストアンサー率 50% (1122/2211)

> test.cgiから、GETで、test2.cgiへデータを移行したいのですが test.cgi は、<META> かなんかで、test2.cgi に切り替えるように 動くんですか? で、同じディレクトリにあると。 使っているのは unix 系のOSで、http は Apache ですか? 念の為、test2.cgi の実行権限を見直してみてください。 ち ...続きを読む
> test.cgiから、GETで、test2.cgiへデータを移行したいのですが

test.cgi は、<META> かなんかで、test2.cgi に切り替えるように
動くんですか?

で、同じディレクトリにあると。

使っているのは unix 系のOSで、http は Apache ですか?
念の為、test2.cgi の実行権限を見直してみてください。

ちなみに、test.cgi は、http://127.0.0.1/test.cgi として
動かしているのですよね?

# よく分からんです (^^;
補足コメント
Iam2888

お礼率 30% (17/55)

初心者は、専門家のおっしゃる意味さえ難解なのですが・・・すみません。

>test.cgi は、<META> かなんかで、test2.cgi に切り替えるように
>動くんですか?
>で、同じディレクトリにあると。
初心者の私にはあんまり意味が理解できません。<META>って関係あるんでしょうか?

環境は、WINme + HTTP Daemon1.33g + perl5 です。

test.cgi は、http://127.0.0.1/test.cgi として動いてます。

# 的を得た答えでしょうか?(T_T)
投稿日時 - 2001-07-23 22:37:18
  • 回答No.7
レベル14

ベストアンサー率 50% (1122/2211)

> 初心者は、専門家のおっしゃる意味さえ難解なのですが・・・すみません。 ありゃ、訳の分からないことを書いてしまいましたか m(_ _)m ある CGI から、別の CGI を呼び出すのって、それなりにやり方に悩むところ なのを、さらっと「呼び出して」なんて書いているので、そのあたりのことを 分かっている人なのだと思っちゃいました。 差し支えなければ、test.cgi がどんな ...続きを読む
> 初心者は、専門家のおっしゃる意味さえ難解なのですが・・・すみません。

ありゃ、訳の分からないことを書いてしまいましたか m(_ _)m

ある CGI から、別の CGI を呼び出すのって、それなりにやり方に悩むところ
なのを、さらっと「呼び出して」なんて書いているので、そのあたりのことを
分かっている人なのだと思っちゃいました。

差し支えなければ、test.cgi がどんな感じなのかを書き込んでくれると、
それなりのアドバイスができるかも。


> test.cgi は、http://127.0.0.1/test.cgi として動いてます。
>
> # 的を得た答えでしょうか?(T_T)

何も泣かずとも。このサイトは、分からないことがある人が、分かるかもしれない
人に聞くのが主旨なのですから、どうどうと「分からない」という態度でのぞめば
良いのです。

ちなみに、私が聞きたかったのは、そういうことです。

# 一応、現職の計算機屋さんなので、専門家にチェックを入れてますが、
# やっぱり、分からないことは分からないですよ (^^;
補足コメント
Iam2888

お礼率 30% (17/55)

以下がtest.cgiです。なにとぞよろしくお願いします。

#!/usr/bin/perl

open(IN,"yasumi.csv")or die "$!";

eval{ flock IN,2; };
@line = <IN>;
eval{ flock IN,8; };
close(IN);

$cnt = 0;
foreach(@line){
($jikanst,$jikanend,$youbi,$rinji) = split(/\,/,$_);
$cnt++;
}

$a[0]="日曜日";$a[1]="月曜日";$a[2]="火曜日";$a[3]="水曜日";
$a[4]="木曜日";$a[5]="金曜日";$a[6]="土曜日";$a[7]="その他";

$b[0]="通常営業";$b[2]="定期休日";$b[3]="臨時休業";

print<<"EOF";
Content-type: text/html

<HTML><HEAD><TITLE>へい!まいど設定</TITLE>
</HEAD>
<BODY>
~~ 今の設定 ~~<br><br>
【開始時刻】 $jikanst時から<br>
【終了時刻】 $jikanend時まで<br>
<br>
【週休設定】 $a[$youbi]<br>
【臨時設定】 $b[$rinji]<br>
<BR>
<br>~~ 新しい 設定~~
<br>
<FORM ACTION="test2.cgi" METHOD=GET>
【開始変更】<SELECT NAME=jikanst><OPTION VALUE=$jikanst SELECTED>変更なし
<OPTION VALUE=0> 0時
<OPTION VALUE=1> 1時
<OPTION VALUE=2> 2時
<OPTION VALUE=3> 3時
<OPTION VALUE=4> 4時
<OPTION VALUE=5> 5時
<OPTION VALUE=6> 6時
<OPTION VALUE=7> 7時
<OPTION VALUE=8> 8時
<OPTION VALUE=9> 9時
<OPTION VALUE=10>10時
<OPTION VALUE=11>11時
<OPTION VALUE=12>12時
<OPTION VALUE=13>13時
<OPTION VALUE=14>14時
<OPTION VALUE=15>15時
<OPTION VALUE=16>16時
<OPTION VALUE=17>17時
<OPTION VALUE=18>18時
<OPTION VALUE=19>19時
<OPTION VALUE=20>20時
<OPTION VALUE=21>21時
<OPTION VALUE=22>22時
<OPTION VALUE=23>23時
<OPTION VALUE=24>24時
</SELECT><br><br>
【終了変更】<SELECT NAME=jikanend><OPTION VALUE=$jikanend SELECTED>変更なし
<OPTION VALUE=0> 0時
<OPTION VALUE=1> 1時
<OPTION VALUE=2> 2時
<OPTION VALUE=3> 3時
<OPTION VALUE=4> 4時
<OPTION VALUE=5> 5時
<OPTION VALUE=6> 6時
<OPTION VALUE=7> 7時
<OPTION VALUE=8> 8時
<OPTION VALUE=9> 9時
<OPTION VALUE=10>10時
<OPTION VALUE=11>11時
<OPTION VALUE=12>12時
<OPTION VALUE=13>13時
<OPTION VALUE=14>14時
<OPTION VALUE=15>15時
<OPTION VALUE=16>16時
<OPTION VALUE=17>17時
<OPTION VALUE=18>18時
<OPTION VALUE=19>19時
<OPTION VALUE=20>20時
<OPTION VALUE=21>21時
<OPTION VALUE=22>22時
<OPTION VALUE=23>23時
<OPTION VALUE=24>24時
</SELECT><br><br>
【週休変更】<SELECT NAME=youbi><OPTION VALUE=$youbi SELECTED>変更なし
<OPTION VALUE=0>日曜日
<OPTION VALUE=1>月曜日
<OPTION VALUE=2>火曜日
<OPTION VALUE=3>水曜日
<OPTION VALUE=4>木曜日
<OPTION VALUE=5>金曜日
<OPTION VALUE=6>土曜日
<OPTION VALUE=7>その他
</SELECT><br><br>
【臨時変更】<SELECT NAME=rinji><OPTION VALUE=$rinji SELECTED>変更なし
<OPTION VALUE=1>通常営業
<OPTION VALUE=2>定期休日
<OPTION VALUE=3>臨時休業
</SELECT><br><br>
  <input type="submit" value="送信する"><br>
  <input type="button" onclick="history.back();" value=" 戻る ">
</form>
</BODY></HTML>

EOF

以下yasumi.csv

0,24,7,0,

要するに、csvデータのHPによる書き換えをしたいのですが。(i-moad含む)
もっと、いい方法あったら、ご伝授ください。(質問の趣旨が変わってもかまいません(笑))
投稿日時 - 2001-07-24 08:20:29
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ