皆様にお聞きし無事、送信フォームを自分のHPに付けることができました。
のですが、2つ目3つ目と作ろうと思ったら思うようにうまくいきません。
僕のサーバーはcgi-binというフォルダを置かなくてそのままpublic_htmlに
設置O.Kだったのでpublic_htmlに
1.form1.html
2.form1.cgi
3.thanks.html(送信後に表示されるページ)
4.tempディレクトリ
を置いていました。
そこに新しくform2.htmlとform2.cgiを置いたのですが
tempディレクトリは名前が同じなのでアップしても上書きになってしまうと思い
なにもふれなかったせいか、form2.htmlを開き
フォームに記入し送信したらエラー警告ページが表示されます。
(送信後表示されるページはthanks.htmlでform1と同じです。)
2つ目を設置するにはどうすればよいのでしょうか?
教えてください、お願いします。。
ちなみに、1つ目のフォームは順調に作動しています。

WIN98,OE

このQ&Aに関連する最新のQ&A

A 回答 (3件)

 「Internal Server Error」が出るということは、恐らくスクリプトの記述ミスでしょう。



 構文チェックはしましたか?(こんなこと聞くのは本当は失礼なのですが、初心者ではありがちなので)
 もししていないのであれば、Telnetから
  perl -wc form2.cgi
として確認して下さい。
 ローカル環境にActivePerl等がインストールされているのであれば、そちらでも構いません。DOS窓を開いて確認して下さい。
    • good
    • 0

エラー警告ページとはCGIが出力するエラーメッセージですか?


それともプログラムが動かないと言うようなメッセージが出ると言うことですか?

ちなみにform2.htmlとform2.cgiはどの程度書き換えましたか?

この回答への補足

「エラーメッセージ全文です。」
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@h-scorpion.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

また、htmlの方はHPビルダーで制作しているので
余計なとこは触らず、入力部分を減らしたり増やしたりだけです。
cgiの方は1つ目のcgiを基板に参考書に指摘されていた通り「氏名:$FORM{'name'}・・・」とかそれに応じた「$FORM{'name'}・・・END」の中身をhtmlにそって変えたり新たに作ったりしただけで他はいじっていません。

よろしくお願いします。

補足日時:2001/06/22 00:22
    • good
    • 0

form2.cgiのパーミッションを755に設定しましたか?



参考URL:http://tohoho.wakusei.ne.jp/wwwxx012.htm

この回答への補足

パーミッションは自動で変わるFTPを使用していますので、今も確かめましたがきちんと755に設定してありました。他に原因はあるのでしょうか?

補足日時:2001/06/21 23:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QCGIプログラムを使った申し込みフォームでメーラーに送信し、HTML形式で表示していますが文字化けしてしまいます。。

Perlで書いたCGIプログラムを使って、申し込みフォームを作成し、送信先をOutlookExpressのメーラーにしてHTML形式で表示しています。
サーバーはLINUX、メールを見ているPCはWindows98SEです。
しかし、なぜか申請書という文字が瑞ソ書というふうに文字化けしてしまいます。
他の字は大丈夫のようなんですが。。どうしたら良いでしょうか?
もちろん、print OUT "Content-type: text/html; charset=\"ISO-2022-JP\"\n";
の指定はしています。

Aベストアンサー

「申請書」が「瑞ソ書」に化けてしまうのは、スクリプトがシフトJISで書かれているために起こる問題であって、メールの送信云々とは無関係です。
例えば、
  print "申請書";
とだけ書いたスクリプトで、同様の結果が得られます。
直すには、「申」の後ろに「\」を付ける(つまり "申\請書" とする)方法が簡単です。
他にも「表」「予」「能」など、文字化けを起こしたりする文字が多数あります。

以下に原因の詳細などを書きますが、長いので興味がなければ読み飛ばしてください。

「申請書」のシフトJISの文字コードは
  申   請   書
  90 5C 90 BF 8F 91 (16進)
となっています。
このうち「申」の2バイト目である「5C」というコードは、文字「\」(エスケープコード)であるため、すぐ後の「90」とくっついて「\x90」という扱いになってしまいます。

つまり Perl の内部では、
  print "\x90\x90\xBF\x8F\x91";
であると解釈されてしまい、これをシフトJIS環境で表示すると
  90 90 BF    8F 91 (16進)
  瑞   ソ(半角)書
となるわけです。
※もし「ソ」が全角になっているとすれば、メール送信用にJIS変換する際に、jcode.pl よって全角に変換されているのです。

このような原因により、既に化けてしまった文字列を メール送信しているので、受け取った側でも化けて見えるのは当然ですね。

この問題は Perl がシフトJISの事情など考慮せずに作られているのが原因(世界中で使われているのだから当然)で、上記のように「5C」の後ろにもう1つ「5C」を書くことで解消できます。
これが面倒な場合は、日本語が扱える jperl を使う、スクリプトを EUC で書く、などの対処方法があります。

「申請書」が「瑞ソ書」に化けてしまうのは、スクリプトがシフトJISで書かれているために起こる問題であって、メールの送信云々とは無関係です。
例えば、
  print "申請書";
とだけ書いたスクリプトで、同様の結果が得られます。
直すには、「申」の後ろに「\」を付ける(つまり "申\請書" とする)方法が簡単です。
他にも「表」「予」「能」など、文字化けを起こしたりする文字が多数あります。

以下に原因の詳細などを書きますが、長いので興味がなければ読み飛ばしてください。

「申請書」のシ...続きを読む

Qpublic_html外でCGIやPHPを動かすには?

WWWからは見ることのできないディレクトリpublic_htmlですがここにCGIやPHPを置き、動かすことは可能でしょうか?

実際に試しましたが動いてくれませんでした。

動かせるのでしたら稼動方法などを教えていただけると幸いです。

Aベストアンサー

Intel_404さんこんにちは

動かす(実行する)というのはブラウザ以外からということでしょうか?

通常公開ディレクトリというのがあり、一般にブラウザでアクセスできるデータの格納場所になります。
Intel_404さんがお借りのレンタルサーバーの公開ディレクトリの名前が「public_html」だと思います。
「public_html」以外に設置した場合、ブラウザからのアクセスはできないので、そのほかの実行方法をとることになります。

ちなみにどうして「public_html」以外に設置したいか教えていただければ、他の方法で目的を達成できるかも知れません。

Q
の場所は?

CGIでデータを受け渡しするアンケートを作っています。html中に書く<form method=post action="***.cgi">~</form>“~”の場所についてですが質問項目を全て挟まなくてはいけませんか?実は、チェックボックスの「最大2つまで回答可」という部分をJavascriptでチェック個数を超えてチェックした時点でアラートが出るようにしてます。その記述中にすでに<form>~</form>タグを制限をかけたい質問に置いているので、質問全体を<form method=post action="***.cgi">~</form>でくくると入れ子になってしまいます。大丈夫ですか?

Aベストアンサー

<form method=post action="***.cgi" name="form1">~</form>
にする。つまり「最大2つまで回答可」という部分だけをonclickでJavascriptを呼び出したらいいと思います。

Qiis+cgiでmultipart/form-data送信がうまくいかない

これまでLinux+Perl/CGIで構築していたWEBサーバをIIS+Perl/CGIに移す必要が生じ、新規にIISによるWEBサーバを構築しました。
一気にコンテンツを移動してもハマるだけだと考え、まずは簡単なコードを記述しCGIが動作するかどうかテストしています。
POSTによるinput type=textのデータ表示まではうまく行きましたが、ファイルアップロードのところで詰まりました。

IIS(Windows)によるWEBサーバの構築は初めてで、何が問題なのかサッパリわかりません。
どなたか問題点あるいはどこをチェックすれば良いかご指摘いただけませんでしょうか。

●やった事
PerlにてPOSTを利用しmultipart/form-dataにてファイルをアップロードするシンプルなコードを書き、第一段階としてMIMEエンコードされたものをブラウザ上に表示するしようとしてみた。
コードは最下方の通り。

●症状
送信を実行してもアップロード中のまま(ウィンドウマークが動き続けている)で、IISに設定してある10分程のタイムアウト時間を過ぎて終了してしまう。
TXT、XLS、DOCなどファイル種を変えて試しても全く同じ症状。

●環境:Windows2000ServerSP4 IIS5.0 Perl5.8.8

*******アップロード画面******
<HTML>
<HEAD>
<TITILE>ファイルのアップロード</TITLE>
</HEAD>
<BODY>
<FORM ACTION="/cgi-bin/upload.cgi" ENCTYPE="multipart/form-data" METHOD="POST">
ファイル: <INPUT TYPE="file" NAME="File" SIZE="32"><BR>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</BODY>
</HTML>
**********ここまで***********
*******CGI*******************
#!/perl/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
print "Content-type: text/html\n";
print "\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>test</TITLE>\n";
print "</HEAD>\n";
print "<BODY BGCOLOR=\"#ffffff\">\n";
print "$buffer";
print "</BODY>\n";
print "</HTML>\n";
exit;
********ここまで***********************

これまでLinux+Perl/CGIで構築していたWEBサーバをIIS+Perl/CGIに移す必要が生じ、新規にIISによるWEBサーバを構築しました。
一気にコンテンツを移動してもハマるだけだと考え、まずは簡単なコードを記述しCGIが動作するかどうかテストしています。
POSTによるinput type=textのデータ表示まではうまく行きましたが、ファイルアップロードのところで詰まりました。

IIS(Windows)によるWEBサーバの構築は初めてで、何が問題なのかサッパリわかりません。
どなたか問題点あるいはどこをチェックすれば良い...続きを読む

Aベストアンサー

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});



undef($/); $buffer = <>;

に直してみると、どうでしょうか?

うろ覚えの記憶ですが、 IIS は

Content-Encoding: chunked

で返すので、CONTENT_LENGTH はあてにならなかったと思います。

デコードは、マルチパートも含めて自分でやると面倒なので、 CGI.pm とかがお勧めです。

Q.htaccessを用いて.cgiを.htmlにリダイレクトしたい

.htaccessを用いて.cgiを.htmlにリダイレクトしたい

現在webサイトで以下のようなURLが表示される掲示板を設置しています。

http://hoge.com/bbs1/bbs.cgi?nd=dd&parent=32
http://hoge.com/bbs1/bbs.cgi?nd=dd&parent=500

(最後の数字は10から500くらいまであります)

これを過去ログにするため、html化しました。
http://hoge.com/log1/32.html
http://hoge.com/log1/500.html


しかし以下のような.htaccessを、/bbs1/以下に設置しても、htmlに転送することができません。

RedirectPermanent /bbs1/bbs.cgi?nd=dd&parent=32 "http://hoge.com/log1/32.html"

ちなみに以下のようなhtmlファイル同士の転送はできます。

RedirectPermanent /bbs1/index.html "http://hoge.com/log1/index.html"

301リダイレクトでcgiをhtmlに転送することはできないのでしょうか?
もしおわかりになりましたらご教授いただけますと大変有り難いです。

.htaccessを用いて.cgiを.htmlにリダイレクトしたい

現在webサイトで以下のようなURLが表示される掲示板を設置しています。

http://hoge.com/bbs1/bbs.cgi?nd=dd&parent=32
http://hoge.com/bbs1/bbs.cgi?nd=dd&parent=500

(最後の数字は10から500くらいまであります)

これを過去ログにするため、html化しました。
http://hoge.com/log1/32.html
http://hoge.com/log1/500.html


しかし以下のような.htaccessを、/bbs1/以下に設置しても、htmlに転送することができません。

RedirectPermanent /bbs1/bbs.c...続きを読む

Aベストアンサー

?付けるとquery消えます。

RewriteEngine on
RewriteCond %{QUERY_STRING} ^nd=dd&parent=([0-9]+)$
RewriteRule ^bbs.cgi$ /log1/%1.html? [R=301,L]




http://xn--u8jxb9ib9150b2px.jp/htaccess/rewritequery2.html


このカテゴリの人気Q&Aランキング

おすすめ情報