こんばんは。
サーバでは問題なく動くCGI(Perl)が
ローカルPC環境で動きません。
ローカルのHTMLファイルから呼び出すと
CGIファイルがテキストとして表示されます。
しかし、パス関係の間違いはありません。
動かないCGIファイルを「print "Hello!";」などの
単純な文章に書き換え、同じHTMLから呼ぶと動きます。
また、「Perl文法チェックサイト」で
チェックしても、文法間違いはありません。
ほかにどういった原因が考えられますでしょうか?
----------------------------------------
なお、ローカルのHTMLでは
「form」にラジオボタンを配置、
「submit」で「POST」送信したうえで
その結果によってHTMLを生成出力するようにしています。
ここらへん、まったくよく分かっていないのですが
もしかして、こういう送信はローカルでは
実行できないとかあるのでしょうか?
送信部分を削って、HTML出力だけのCGIにすると動きます。
繰り返しますがサーバ上では動作しています。
よろしくお願いいたします。
----------------------------------------
◆環境◆ WindowsXP IE6.01 httpd 1.42m
ActivePerl(バージョンの見方が分かりません)
No.2ベストアンサー
- 回答日時:
><form action="
http://127.0.0.1/~***/***/cgi-bin/test03.cgi">としたら動くよくある勘違いだと思うけど、formを記述しているファイルもローカルサーバー経由
(http://127.0.0.1/~***/***/xx.htmlなど)で呼び出してないと、
単なる、ファイル表示では、file:///d:/xxx..../xx.html というアドレスになり、
相対アドレス指定では、file:///d:/xxx..../test03.cgiを呼び出すことになるのでテキスト表示になってしまいます。
この回答への補足
ご回答ありがとうございました。
あらら。ということは、質問文に書いた
私の以下の文章は、「あなたねぇ、ウソをついて
人をからかってはいけませんよ」と
いうことになりますか?
> 動かないCGIファイルを「print "Hello!";」などの
> 単純な文章に書き換え、同じHTMLから呼ぶと動きます。
焦ってもう一度やってみたら、今度は動かない。
過日は文章出力で試したため、テキスト表示されたのを
動作したと勘違いしてしまったのかなぁ。
「いや、そんなはずはない」という思いもあるため
いましばらく確認作業をしてみます。
ちなみにWWW検索したらこんな文書がありました。
----------------------------------------
CGIファイルから別のCGIファイルやPLファイルを呼び出して
使用する場合には、この関連付けが機能しない為、注意が必要です。
呼び出す方のCGIファイルには、呼び出されるCGIファイルを
絶対パスにて指定しなければなりません。
http://sakaguch.com/WWWserver.html
----------------------------------------
CGIファイルから呼び出してはいませんが、
理屈的にはこれと同じということでしょうか?
検証を続けて、納得できましたら締め切ります。
ありがとうございました。
納得できましたので締め切ります。
どうもわたしに勘違いがあったようです。
お騒がせして申しわけがありませんでした。
また、ありがとうございました。
No.1
- 回答日時:
もしかしてメールを送信しようとしているとか?
SENDMAILとかで。
その場合、SENDMAILをインストールして、正しいパス指定をしなければいけません。
WIN版のSENDMAILは有料ですけども。
そうでない場合はその送信部分のソースを見ないと答えられません。
この回答への補足
ご回答ありがとうございました。
残念ながらsendmailは使っていません。
ラジオボタンを押してボタンでsubmitし、
valueが0と1の場合で違うHTMLを生成し出力するだけのものです。
「記述すると動かなくなる部分の」perlスクリプトと
それを呼び出すHTML部分は以下のとおりです。
(機能拡張を予定しているため、現在は意味のない記述もしています)。
ただ、何度も繰り返しますが、サーバでは動いています。
なお、Perlのパスはでたらめですが、
でたらめでも動くような環境にしています。
◆HTML◆
<form action="../cgi-bin/test03.cgi" method="post" enctype="text/css">
<p><input type="radio" name="answer" value="0" tabindex="1" accesskey="F" />回答例1</p>
<p><input type="radio" name="answer" value="1" tabindex="2" accesskey="S" />回答例2</p>
<div><input type="hidden" name="FileName" value="*****" /></div>
<div><input type="submit" value="答える" tabindex="3" accesskey="A" /></div>
</form>
◆Perl◆
#!/usr/local/bin/perl
require './jcode.pl';
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
}
else {
$buf = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buf);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
&jcode'convert(*value,'euc');
$FORM{$name} = $value;
}
print "Content-type: text/html\n\n";
if($FORM{'answer'} == 1){
print *****;
}
else{
print *****;
}
すみません、補足です。
ふと気になってHTMLの
<form action="../cgi-bin/test03.cgi">の部分を
<form action="http://127.0.0.1/~***/***/cgi-bin/test03.cgi">と
ローカル上の絶対指定にしたら動きました。
ここがおかしいということのようですが
相対指定ではいけないのでしょうか?
なお、サーバ上とミラーリングしていますので
相対パス自体は間違っていません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- 一眼レフカメラ 「Imaging Edgeに関する収集データの取扱い」について。何を収集するのですか? 1 2022/08/05 11:29
- Chrome(クローム) タスクバーにローカルのhtmlのリンクをchromeで留めてダブルクリックして使うことできますか? 1 2023/08/26 18:13
- Excel(エクセル) excelのマクロ実行でブロックされます。 2 2022/06/08 09:14
- ホームページ作成・プログラミング メールフォームで送信すると「通信に失敗しました。ページの再読み込みを...」で送信できません。 2 2023/05/26 18:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
排他処理について教えてください。
-
CGIだけで動作するフリーの日記...
-
EXCELファイルに誰がアクセスし...
-
ApacheでのCGIについての質問
-
《エクセルVBA》「他の人が該当...
-
カタカナを英語やフランス語に...
-
.htaccessを2つ以上設置した場合
-
SFTPなどは使わないホームペー...
-
Ajax React Jqueryの位置づけと...
-
Perlプログラム上でアラートを表示
-
CGI掲示板のバーミッションにつ...
-
NAMAZUでの文字化け
-
#!/usr/local/bin/perlとしたい
-
自前のアップローダの作り方
-
ニフティでメールフォームを使...
-
CGIって何ですか?簡潔に教えて...
-
FTPにて553エラー
-
KENT WEBのページカウンタのタ...
-
FC2へのCGIメールフォーム設置
-
クライアントサイドとサーバー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CGIでソースがそのままでてしま...
-
XサーバーでCGIを使うには??
-
cgiファイルを直接は見れなくす...
-
ファイルをアップロードするフ...
-
排他処理について教えてください。
-
CGIが実行されずにダウンロード...
-
.cgi拡張子のままCGIファイルを...
-
CGIをテキストに変換したものを...
-
htmlファイルにPHPとCGIを埋め込む
-
特定CGI「だけ」が、ローカル環...
-
C言語で作ったプログラムをC...
-
htmlに外部のcgiを読み込む
-
ファイルのダウンロードがうま...
-
CGIにCSSを
-
BBS掲示板でのhtmlとcgiの関係...
-
HTMLのソースへサーバーの掲示...
-
データベースのSEO対策?
-
CGIをコピーしたのですがうまく...
-
Apacheでcgiを動かす場合のファ...
-
ファイルアップロードの設置が...
おすすめ情報