• 締切済み

CGIのサーバーへの転送

CGIは素人です。商品の申込みフォームでCGIを使おうとしています。 マニュアルどおりにすすめていますが、サーバーへ送って、送信ボタンを押すとエラー画面になってしまいます。Perlパスにも書き換えていて、アスキーで送っています。ヒントになるご回答おまちしています。

みんなの回答

  • burn
  • ベストアンサー率65% (25/38)
回答No.2

お答えは、anglyさんのテスト環境では上手く動いていて、 サーバー上ではエラーになってしまう・・・と言う事で良いのでしょうか? 又、CGIはご自身で用意されたものと言う事で良いですね。 上記の点を前提としてお答えすると、エラーの原因として考えられるのは、以下の点です。 1.そのCGIが読み書きしている、ファイルのパーミッションが間違っている。 CGIで書き込みをしている、ファイルは無いですか? あったら、そのファイルのパーミッションは666、ディレクトリは777にしてみてください。 2.Perlのパスが間違っている。 これは、今回はクリアされていると思います。 3.sendmailのパス、もしくは構文エラー もし、angelyさんがWindows環境で開発されたものならば、sendmailはサーバーに送って初めて稼動する部分だと思います。 良くあるのは、sendmailのパスの記述ミス。 そして、メールヘッダーと、本文との間に空行を開けて居ない場合等です。 多分、商品の申込みフォームと言う事ですから、オーダーをメールで送信する様な仕様になっていると思います。 良くチェックしてみてください。 他にもエラーを起こす要因はありますが、今の情報だけだと、この辺りからチェックしてみるのが良いと思います。 今までの開発経緯など、もう少し詳しい情報を頂けたら、 エラー原因を特定できると思います。

angely
質問者

補足

早速お答えいただいて嬉しいです。もう少しというかだいぶ詳しく説明いたします。orderというフォルダの中にordersheet.cgi(パーミッション755←サーバーの指示)ordersheet.htm(パーミッション604)cgi-lib.pl(パーミッション404)jcode.pl(パーミッション404)ordersheet.dat(パーミッション606)でこれをFTPでアップロードしました。755以外のパーミッションは本を見ながらしました。cgiスクリプトで送信ボタン後の部分は以下のようになっています。お答えいただいた、sendmailというのが何かわからなかったのですが・・・。私が作っているこのCGIには必要なものですか? # -----ここから出力----- print "Content-type:text/htm\n\n"; print <<END_OF_HTML"; <html> <head><title>申込み</title></head> <body>ありがとうございました。早速商品をお送りします。</body> </html> END_OF_HTML

  • inoue64
  • ベストアンサー率29% (334/1115)
回答No.1

・最初に「Content-type: なんとかかんとか」 と、  空行を1行Printするようにしましたか?  http://tohoho.wakusei.ne.jp/wwwcgi.htm ・このサイトを参考にしてみてはどうですか。

参考URL:
http://tohoho.wakusei.ne.jp/wwwcgi7.htm,http://www.att.or.jp/perl/cgi-debug-env/deb-tech.html