cgiを作成してテストをしていたのですが、http500サーバーエラーとなってしまいました。
内容は、1つのcgiで処理区分を設けて複数のHTMLを作成したり、メール送信をさせています。
初めに処理区分なしで実行させ、入力フォームのHTMLを出力させます。
次に、前に入力した項目を出力して確認してもらいます。
次に、sendmailでメール送信して送信完了画面を出力したいのですが、ココでhttp500のエラーメッセージが出ます。
当然ココまで同じcgiを使用しているのですが、何故この時だけエラーになってしまうのか分かりません。localでテストしている時には動いているのですが?
誰か、知恵を貸してください。
よろしくお願いします。

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

A 回答 (5件)

確認ですが、$myaddressがnullであることと、sendmailの -t スイッチが外されているのは、意図的なものですか?



詳細なロジックまでは目を通していませんが、この辺が怪しいのでは・・・?

この回答への補足

補足回答ありがとございます。

> $myaddressがnullであること
これは、他のcgiからコピーしてきたのですが、修正不足でした。
おかげさまで動くようになりました。

> sendmailの -t スイッチが外されているのは
2、3種類のcgiで違うopenの仕方をしていたので試してみただけです。
-tに何の意味があるのでしょうか?

あと、新しく質問すべきかも知れませんが、動いて送られたメールの本文が
出ないんです。
ヘッダーの最後に
X-UIDL: ]l$#!]$(#!e?'!!%('!!
などと出ているのですが、関係してますか?

よろしければ回答お願いいたします。

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

それで'\n'を入れてみました??


'\n'入れてもメール本文が出ませんか?
ソースを見た限りでは、ヘッダーに本文を書いているように見うけられたのですが、どうですか??
    • good
    • 0
この回答へのお礼

有難うございます。
'\n'回答があった後、入れてやっていました。
原因分かりました。
$m_com = $com1; が
$m_com = $com; でした。
単純なミスでご迷惑かけました。

お礼日時:2001/03/06 23:32

補足です。

「print "To: $mail";」(←例)の $mailの中にメールアドレスが入ると思うのですが、
aaa@hoge.co.jpではエラーになってしまうので、aaa\@hoge.co.jpとなるようにすればエラーが回避できるはずです。
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2001/03/06 00:14

burnさんがおっしゃられているように、$myaddressがnullみたいですけど・・・


それと、Subject: とメール本文の間にもう一つ'\n'が必要なのでは??
つまりヘッダー終了してないとか??
間違ってたらごめんなさい。
    • good
    • 0
この回答へのお礼

有難うございます。
おかげさまで、動くようになりました。

お礼日時:2001/03/06 00:12

テスト環境が分からないので、正確には回答できませんが、sendmail以外の処理は上手く行っていて、そのときだけの場合は以下の事が考えられますので、確認してみて下さい。



1.sendmailのパスの記述が間違っている場合。
 もし、レンタルサーバーなどに契約されている場合は
 sendmailのパスも変わります。確認してみて下さい。

2.sendmailに渡す、パラメーターの記述が間違っている。
 これは、「何処が・・・」というアドバイスは出来ません。例えば print MAIL "From: ####";の記述の####の部分が"aaaa@bbbb.com"等と「""」を使うとエラーになりますよ。

もう少し、状況がわかれば、原因が分かると思うのですが・・・・

この回答への補足

早速の回答ありがとうございます。
1.は確認済みです。
2.もあっているつもりなのですが・・・?

まだ、半完成で見せるのが恥ずかしいのですが
http://www.az-studio.com/value-int/syokai.txt
にcgiを置いておきます。
よろしければ見ていただきたいのですが。

補足日時:2001/03/05 02:41
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qwindowsサーバーのレンタルサーバーを検討しています。

お世話になります。
この度、友人よりサーバーの移管をお願されたのですが、話を聞くとwindows現在の環境がサーバーだったので困っています。
aspを使用しているため、どこかでwindowsレンタルサーバーを借りて移すしかないのですが、aspとは、サーバーにアップするだけで動くものなのでしょうか?

windowsサーバーについて知識ゼロな私ですが、使えるものなのでしょうか?知識レベルとしてはhtml・cssが分かるくらいで、あとはflashを少しくらいのものなのですが。。。

また、普段私はさくらインターネットを利用しています。

windowsサーバーに関してお詳しい方がいらっしゃいましたらどうぞ宜しくお願いたします。

Aベストアンサー

> aspとは、サーバーにアップするだけで動くものなのでしょうか?
 そのaspファイルによるとしか言えないですね・・・・。一般的にaspファイルの中にはHTMLとスクリプトが入っていて、スクリプトはそのほとんどがVBScriptあるいはJavaScriptと似たJScriptのどちらかで、その2つの割合もほとんどがVBScriptでしょう。
 で、ASP(というかVBScript)は、Windowsに登録されているActive Xコンポーネントを使用する事ができるのですが、当然Windowsに登録されていないと使用できません。Active Xコンポーネントを全く使用していないのであれば置くだけで動くと期待して良いでしょう。

 使っていたら・・・・専用サーバー(めちゃくちゃ高い)でもない限り、自分が使うためのActive Xを登録してくれる事はまずないと思いますので、レンタルサーバー会社に問い合わせてみてください。

QCGIの中で出力するテキスト内容をhtml側で表示する方法。

htmlからCGIファイルを呼び出すと、そのCGIは動作はしているようですが、
print等でhtml形式で文字出力させている部分は、ブラウザ内に表示されません。
今やって失敗している方法です。どのようにするのが良いか教えて頂ければ幸いです。

1.CGIスクリプト(Perlで記述)を用意... test.cgi
-----------------------------------------------------
#!/usr/bin/perl
print "Content-type:text/html; charset=shift_jis\n\n";
print <<__EOD;
<html lang="ja">
<head>
<title>TITLE</title>
</head>
<div align=center>
<a>テスト1</a><br>
<a>テスト2</a><br>
</div><br>
</body></html>
__EOD

open(OUT,">a.tmp") || die "$!";
print OUT "aaaaa\n";
close(OUT);
-----------------------------------------------------


2.htmlを用意 ... test.html
-----------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>HTML TEST</title>
</head>
<body>
<script src="http://xxx/CGI/test.cgi"></script>
</body>
</html>
-----------------------------------------------------

上記のとき、動作として、

◆ブラウザからCGIのパス(http://svr1/CGI/test.cgi)に直接アクセスした場合、
「テスト1」「テスト2」の文字が表示され、a.tmpファイルも作成されている。

◆ブラウザからhtml(http://svr1/test.html)にアクセスした場合、ブラウザ画面は何も表示されない
(真っ白となる)が、a.tmpファイルは作成されている。

のようになってしまいます。

後者のようにして、htmlからCGIファイルを呼び出すと、そのCGIは動作はしているようですが、
print等でhtml形式で文字出力させている部分は、ブラウザ内に表示されません。

以上、よろしくお願い致します。

htmlからCGIファイルを呼び出すと、そのCGIは動作はしているようですが、
print等でhtml形式で文字出力させている部分は、ブラウザ内に表示されません。
今やって失敗している方法です。どのようにするのが良いか教えて頂ければ幸いです。

1.CGIスクリプト(Perlで記述)を用意... test.cgi
-----------------------------------------------------
#!/usr/bin/perl
print "Content-type:text/html; charset=shift_jis\n\n";
print <<__EOD;
<html lang="ja">
<head>
<title>TITLE</title>
</head>...続きを読む

Aベストアンサー

<script src="http://xxx/CGI/test.cgi"></script>としているなら
perlで出力するヘッダーは
print "Content-Type: application/x-javascript\n\n";
としないとならないでしょう。

perlではjavaScript構文を出力します。

例えばhtmlでは・・
<BODY>
<SCRIPT TYPE="Text/Javascript" LANGUAGE="Javascript">
<!--
document.write ("<SCRIPT TYPE=\"text/JavaScript\" SRC=\"test.cgi\"></SCRIPT>");
// -->
</SCRIPT>
</BODY>

として、perlでは

#!/usr/bin/perl
print "Content-Type: application/x-javascript\n\n";
print "document.write('<A HREF=\"other.html\">てすと</A>');";

てな感じです。

<script src="http://xxx/CGI/test.cgi"></script>としているなら
perlで出力するヘッダーは
print "Content-Type: application/x-javascript\n\n";
としないとならないでしょう。

perlではjavaScript構文を出力します。

例えばhtmlでは・・
<BODY>
<SCRIPT TYPE="Text/Javascript" LANGUAGE="Javascript">
<!--
document.write ("<SCRIPT TYPE=\"text/JavaScript\" SRC=\"test.cgi\"></SCRIPT>");
// -->
</SCRIPT>
</BODY>

として、perlでは

#!/usr/bin/perl
print "Content-Type: appli...続きを読む

Qwindowsでフリーのファイルサーバーというのはないのでしょうか?

windowsでフリーのファイルサーバーというのはないのでしょうか?windowsサーバーを購入しないといけないのでしょうか?

Aベストアンサー

こんにちは、疑問はつきませんね。

さてご質問の件ですが、1番の方がおっしゃっていますが、共有を掛ければ特にファイルサーバなどをインストールしなくても、ファイルサーバになってしまいます。

ただ、問題なのが同時に20人しかアクセス出来ないと言うところです。職場などで使おうとしますと、この制限が足かせになると思います。その点Linxなどで構築したサンバですと、アクセス制限が無いですから、何人でもアクセス出来ます。

QCGI(HTTP://dbgw_relay.cgi)の呼び出しができま

CGI(HTTP://dbgw_relay.cgi)の呼び出しができませんでした。
サーバーへ接続できませんでした。リモート名を解決できませんでした:'dbgw_relay.cgi'

ホームページビルダーで作ったページに買い物かご(ダヴィンチカート)を設定したいのですが、ショッピングカートを設置するサーバを設定する段階で上記のエラーになってしまいます。これはどうしたら解決できるのでしょうか。どなたかご教示お願いいたします。(ちなみに初心者です)

Aベストアンサー

http://www.netdeoshigoto.com/nso_support/2008/02/cgihttpdbgw_relaycgi404.html

最低限 FAQ くらいは目を通してから質問するべきだと思うんだ

Qwindowsサーバーを廃止してsambaに置き換えるには

小さな会社のネットワーク管理を行っております。
今年中に、Windowsサーバーのリースが切れるので、コスト削減できないかと幹部から尋ねられました。それで少し調べまして、windowsサーバーを廃止して、その代わりにデスクトップを購入し、LinuxでSambaというものを利用すれば、windowsサーバーのように運用できるということがわかりました。

当社の現在の環境は、今年で期限が切れるwindows serverで運用されているADサーバーおよび同じくwindows serverで動作するアプリケーションサーバー(給与や会計ソフト)、そしてLANにNASのファイルサーバーがあり、クライアントパソコンはすべてWindowsで30台ほどつながっています。同LAN内にほかにもう一台別のアプリケーションのサーバーがあります。
一部ADドメインで運用していますが、ワークグループでも問題なく動作するので、ADサーバーはなくしてもいいと思います。サーバーライセンス不要でドメイン運用できるのであれば、その方がいいとは思います。

ちなみに私はwindows系は大体わかりますが、Linuxはずいぶん前に自宅のPCにお試しでインストールしたことがある程度で、ほとんど経験がございません。

・コストはどの程度かかるのか?
・導入や運用の難易度はどの程度でしょうか?
・セキュリティや安定性などはどうでしょうか?
・ユーザーへの影響は?(使い勝手の違いなど)
・その他問題点は?

まだ全然具体的ではなく、そもそも検討すべきなのかはじめから除外した方がいいようなものなのかすらわからないような段階です。いろんな面からアドバイスやご提案をいただければと思い質問させていただきました。どうぞよろしくお願いいたします。

小さな会社のネットワーク管理を行っております。
今年中に、Windowsサーバーのリースが切れるので、コスト削減できないかと幹部から尋ねられました。それで少し調べまして、windowsサーバーを廃止して、その代わりにデスクトップを購入し、LinuxでSambaというものを利用すれば、windowsサーバーのように運用できるということがわかりました。

当社の現在の環境は、今年で期限が切れるwindows serverで運用されているADサーバーおよび同じくwindows serverで動作するアプリケーションサーバー(給与や会計ソフ...続きを読む

Aベストアンサー

絶対にやめておいた方が良い。
「コスト削減できないか」 そりゃ幹部は言います。 お金の話だもの。
Linux にするということは 「会社から出ていく現金の額」 は減りますが、それ以外の目に見えづらい (幹部が察知しづらい) コストが掛かることになります。
会社の業務運営を下支えするインフラ業務担当として、最低限譲れないラインは主張すべきです。
そのラインよりも上の場で現金の話をしたらいいのでは?

PC が 30台もあるのだから Workgroup 環境もかなり死ねますよ。
パスワードの更新が面倒になる。
Windows 前提で稼働しているアプリケーションも失うことになる。
安定稼働をさせるための知識がない。
よくわからないモノだから発展的な発想も持てない。


ちなみに弊社では 5年前に入れたサーバー群がリース期限を迎えようとしており、リプレースの準備をしているところです。
5年前、「我々の要望を実現する麗しき理想の構成」は 4千万もしたため却下。もっと現実的な構成での導入となりました。
現在、複数のベンダーさんから提案された構成はまさに 5年前の麗しき構成にそっくりなのに、コストは半分。
自分の知らないところで物事は進んでいるのだと。

同構成で同程度のキャパや能力なら全体的にコストが下がっていませんか?
または前回と同程度のコストで今よりもよくなっていませんか?
クラウドや仮想マシンを利用することで「部品の保守費」も不要になりますよ。

絶対にやめておいた方が良い。
「コスト削減できないか」 そりゃ幹部は言います。 お金の話だもの。
Linux にするということは 「会社から出ていく現金の額」 は減りますが、それ以外の目に見えづらい (幹部が察知しづらい) コストが掛かることになります。
会社の業務運営を下支えするインフラ業務担当として、最低限譲れないラインは主張すべきです。
そのラインよりも上の場で現金の話をしたらいいのでは?

PC が 30台もあるのだから Workgroup 環境もかなり死ねますよ。
パスワードの更新が面倒になる。
Wind...続きを読む

Qhttp://www.test.cgi/index などのCGI名のあとのパス名

http://www.test.cgi/index
のようになっているものを見かけるときがあります。普段は
http://www.test.cgi?mode=index
などしているのですが、どのような仕組みになっているのでしょうか?
これはPerlに限らず、CGIとして動作するものなら実装できるのでしょうか?
疑問に思ってしまったので、ご回答のほどをよろしくお願いします。

Aベストアンサー

PATH_INFOと呼ばれる情報です。Perl/CGIであれば環境変数の$ENV{'PATH_INFO'}で取得する事が出来ます。クエリー(?xxx)が$ENV{'QUERY_STRING'}で取得出来る事と同じ要領です。組み合わせてtest.cgi/path/info?query=stringのようにする事も出来ます。(それぞれ上記の環境変数で別々に取り出せます。)

他の言語に関しても取得出来ます。言語名とPATH_INFOで検索をかけてみてください。(例えば『php path_info』等)

QWindows2000サーバー

前にwindowsNTサーバーでwebサーバーの作り方を聞いたのですが、NTはセキュリティが悪いとのアドバイスを受けたので、Windows2000サーバーでwebサーバーを作りたいと思います。サーバーの作り方を教えていただけないでしょうか?私まったくの初心者です。できればやさしくお願いいたします

Aベストアンサー

 初心者がWebサーバを構築するに当たって考えなければいけないことは、CUI(コマンド)操作ではなく、できるだけGUIを使って構築することを目指さなければなりません。Windows2000ServerもServer 2003 R2もお値段としてはかなりお高く、仕事で使うのであれば参考書籍を購入して頑張って勉強するしかないでしょう。
 個人が趣味の範囲でWebサーバを立ち上げるのならば、XPhomeSP2でも2000proでも可能です。
 一番簡単なのは、MacOSX10.4TIGERが入った最新のMacを買うことです。標準でApacheWebサーバが備わっていますので、システム環境設定→共有→パーソナルWeb共有にチェックを入れ、/ライブラリ/WebServer/Documentsフォルダの中にg555.htmファイルを入れるだけ・・・後は「http://グローバルIPアドレス/g555.htm」で外部からアクセスすることが可能です。
 これ以上簡単にWebサーバの構築方法は教えられません。

Aベストアンサー

>画像ヘッダとはどういうものでしょうか?

Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n";
open(GIF, "file.gif");
binmode(GIF); binmode(STDOUT);
print <GIF>; close(GIF);

もちろん、CGIからは画像フォーマットを返せばいいので、
ファイルから読まずにあらかじめCGIソース内に画像データ
を持っておいて出力する方法も可能です。


ちなみに、多くのCGIではHTMLコンテンツを返す場合が多い
ので、ヘッダは以下のようになります。

print "Content-type: text/html\n\n";

>画像ヘッダとはどういうものでしょうか?

Content-type: image/gif
Content-type: image/png
Content-type: image/jpeg

など、画像タイプごとに決まっています。
<img>タグに普通の画像ファイルが指定されている場合は
Webサーバが画像ファイルの拡張子から判断して返してくれ
ますが、CGIから返されるデータの種類は拡張子からは判断
できないのでCGI内部からヘッダを返す必要があります。


●CGIがPerlの場合で、GIF画像をCGIから返す例
#!/path/to/perl
print "Content-type: image/gif\n\n...
続きを読む

QWindowsサーバー構築などの仕事内容について教えてください。

Windowsサーバーにはあまりなじみがないのですが、
Windowsサーバー構築の仕事というのはどういうことをしているのでしょうか?
Activeディレクトリにユーザーやコンピュータを追加したり?ぐらいしかうかばないのですが参考までに教えてください。

Aベストアンサー

ネットワーク系全盛のご時勢なので、WindowsServerの構築の
仕事は沢山あると思います。
システム構築は、システム導入前にクライアントを訪問し、
お客様のネットワーク用件を確認し、それに見合った
サーバー選定、アプリケーション選定、ネットワーク構築
導入支援、保守のPRなどをする仕事になります。

これはよく言われるのですが、ネットワーク構築の技術者の
給与は高いのでしょうか?と聞かれることがあります。
一昔前の、WindowsNT全盛の頃はそんな時期もありましたが、
現在ネットワーク構築の技術者は余っている状態なので賃金はあまりよくありません。
平均月収も、普通のサラリーマンと相違ないのではないでしょう
Server系の仕事をするためには、MicrosoftならMCPという資格があります。
ネットワーク系の知識を身につけるには、MCPの勉強が早道です。
基礎知識を蓄え、資格に合格し(とは言っても、資格に合格してもServer構築は難しいので)
会社に入ってからじっくり実機操作を学んでいけば大丈夫ではないでしょうか
お薦めのテキストは、よくわかるマスター
WindowsServer2003完全マスター
という本がFOM出版から発売されています。

ネットワーク系全盛のご時勢なので、WindowsServerの構築の
仕事は沢山あると思います。
システム構築は、システム導入前にクライアントを訪問し、
お客様のネットワーク用件を確認し、それに見合った
サーバー選定、アプリケーション選定、ネットワーク構築
導入支援、保守のPRなどをする仕事になります。

これはよく言われるのですが、ネットワーク構築の技術者の
給与は高いのでしょうか?と聞かれることがあります。
一昔前の、WindowsNT全盛の頃はそんな時期もありましたが、
現在ネットワーク構...続きを読む

QCGIで他のCGIの出力を取り込む方法について。

CGIで他のCGIを呼び出し、同じページの一部として出力したいと考えています。
例えば、親のCGIが簡単な機能のCGIをページの一部として出力し、
そのパラメーターを子のCGIに受け渡し呼び出すようなしかけです。
なんかうまい方法ありますか??
あまり急いでいませんが、宜しくお願いします。

Aベストアンサー

use Socket;

ソケット通信を行えば、
パラメータの受け渡し等含めてやりとりできます。
(postでの受け渡しも可能ですし)

ただ、少々実装が面倒かもしれません。

#LWP(lib-www-perl)なども使えるかと思います。
#詳細は参考文献にて。

参考URL:http://member.nifty.ne.jp/hippo2000/perltips/LWP.html


人気Q&Aランキング

おすすめ情報