• ベストアンサー

malformed header from script. Bad header=No recipient addresses found i

これの意味と直し方を教えていただけませんか? いろいろ調べたのですが、意味も理解できないんです。 ヘッダーがないってことらしいんですが、どこに書いたらいいのか解らず困っています 。 どなたかご教示お願いします。 あと、こんなエラーも出ました 。 Attempt to free unreferenced scalar at /usr/local/apache2/htdocs/***.cgi line 75., referer: http://***.***.jp/***.cgi ***.cgiは、上記ソースの物です。 宜しくお願いします。

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

  • ベストアンサー
回答No.2

>print<<"EXIT"; 上記の意味するところは””内の文字のみが書かれている行が現れるところまでの文字を一気に画面に表示するという意味です。(ヒアドキュメント表示といいます。Googleなどで検索してみて下さい) 先程の例で言えば、 <html> ....... </html> までの文をブラウザに対して表示、すなわちページを一気に表示できるというわけです。 ですので””の中は EOLだろうが、EXITだろうがかまわないのです、が・・・・問題が1点。 EXITはCGIのexit関数と見間違えるので、 他の言葉にした方が良く、意味のある「段落の終わり」という意味で私は "EOL"を使っています。(End Of Line) 多分、EXITというのがまずいのではないでしょうか? 一回、その部分を EOL に変えてみては? EOL という文字は、1行単独で存在する必要があります。 (他の文字は一切入れない)

参考URL:
http://www.tohoho-web.com/wwwcgi.htm
father001
質問者

お礼

回答ありがとうございました。 EXITをEOLに変えて、教えていただいたページを熟読して、ソースを見直したら正常に動きました。 本当に助かりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

CGIスクリプトからブラウザに吐き出すときに、 コンテントタイプがきちんと指定されていないのではないでしょうか。 print<<"EOL"; Content-Type:text/html <html> <head> <title>サンプル</title> </head> <body> サンプル </body> </html> EOL Content-Type:text/html行のすぐ下に 空の行(改行のみ)を入れておきます。 (ヘッダと本文を分けるセパレータの役目をします)

father001
質問者

補足

アドバイスありがとうございます。 cgiの内部を調べたのですが、 print<<"EOL";ってところが無く、print<<"EXIT"; なら有ったのですが同じでしょうか? サンプルで記載していただいたものは、ちゃんと表示できました。 よろしければ、再度教えていただけないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Image::Magickが突然動作しなくなってしまったので解決策を

    MovableTypeを今まで使用して、画像のサムネイル作成などをおこなっていましたが、突然下記のようなエラーが出るようになってしまいました。 「Internal Server Error・・・・・・・ Apache/1.3.33 Server」 MovableTypeのmt-check.cgiを実行したところ、 このようなメッセージがでます。 「オペレーション・システム: freebsd  Perl のバージョン: 5.6.1  (おそらく) cgiwrap もしくは suexec が有効になっています  Image::Size  サーバには Image::Size がインストールされていました。(バージョン: 2.93).  Image::Magick  サーバには Image::Magick がインストールされていました。(バージョン: 6.2.0).」 MTの他にも、Image::Magickを使ったCGIが動作しません。 サーバーのエラーログをみると、このようなものがありました。 「Can't load '/usr/local/lib/perl5/site_perl/5.6.1/i386-freebsd/auto/Image/Magick/Magick.so' for module Image::Magick: Shared object "libMagick.so.8" not found at /usr/local/lib/perl5/5.6.1/i386-freebsd/DynaLoader.pm line 206. at /usr/local/apache/htdocs/●●.cgi line 1213 Compilation failed in require at /usr/local/apache/htdocs/●●.cgi line 1213. BEGIN failed--compilation aborted at /usr/local/apache/htdocs/●●.cgi line 1213. [Thu Jan 19 11:48:02 2006] [error] [client 210.172.143.2] Premature end of script headers: /usr/local/apache/htdocs/●●.cgi 」 ●●.cgi line 1213 の部分には、use Image::Magickがあります。 今まで、問題なく動作していたので、原因がわかりません。 サーバの設定が突然かわってしまうようなことがあるのでしょうか? また解決策をご存知でしたらぜひよろしくお願いいたします。perlのバージョンは5.6.1です。

    • ベストアンサー
    • Perl
  • session_start()を使うと警告メッセージが出ます。

    PHP4.2.2、apche1.3.27、VineLinux2.6を使っています。 PHPで、session_start()を使うと以下のような警告メッセージが出てしまいます。何かphp.ini内に、セッティングしないといけないことが あるのでしょうか? [ブラウザに表示されたメッセージ] Warning: Cannot send session cookie - headers already sent by (output started at /usr/local/apache/htdocs/a/a02.php:10) in /usr/local/apache/htdocs/a/a02.php on line 12 Warning: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/a/a02.php:10) in /usr/local/apache/htdocs/a/a02.php on line 12 10 + 200 = 210 [実行したスクリプト] <html> <head> <title>aaa</title> </head> <body bgcolor="red"> <?php session_cache_limiter('private'); session_start(); $a = 10; $b = 200; $c = $a + $b; print("$a + $b = $c"); ?> </body> </html>

    • ベストアンサー
    • PHP
  • htmlで画像が表示されない

    CGIを勉強し始めた者です。 手始めにCGIを使わずに画像表示をさせたところ早速つまづきました。 アドバイスお願いします。 vine linux 6.3 に apache2.4をソースからインストールしました。 /usr/local/apache2/htdocs に以下の cgi-test.html を置きました。 <html> <head> <meta http-equiv="Content-Type:" content="text/html; charset=UTF-8"> <title>CGI TEST</title> </head> <body> <h3>CGI TEST</h3> <img src="../cgi-bin/a0.gif">&nbsp;<img src="./a1.gif"> </body> </html> パーミッションは 755 root root cgi-test.html /usr/local/apache2/cgi-bin のパーミッションも 755 root root です。 ここに 数字0~9のgif画像を置いています。パーミッションは 644 root root 表示されないので/usr/local/apache2/htdocsにa0.gif, a1.gif を置いてみました。 パーミッションは 同じく 644 root root です。 数字0は表示されませんが、1は表示されます。 なぜ0が表示されないのかお教えください。

    • 締切済み
    • CGI
  • perlのエラー表示・停止を無効にしたい

    Perlを動かしていると、時々、 Attempt to free unreferenced scalar: SV 0xXXXXXXX, Perl interpreter: 0xXXXXXX at XXX.cgi line XX. という感じのエラーがでてプログラムが停止します。 なぜか理由も分かりませんが、VirtualPC環境の為、OSがフリーズするなどは問題ないですし、データが正常に記録されるよりも、より長時間動いてくれる方が助かるため、こういったエラーを出して、停止しない様にしたいのですが方法はありますでしょうか? どなたがご存知の方がおられましたら教えて頂けないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • エラーの意味が分かりません

    こんにちは。 カテゴリが適しているかすら分かりませんが、質問させていただきます。 land.toという無料サーバでHPを作成しています。 すると、広告部分が英字だらけになってしまいました。 色々調べてみると、PHPかPerl関連のエラー?だということが分かりましたが 原因を書いているページに行きつくことができませんでした…。 エラーの全文を載せます。 Warning: include_once() [function.include-once]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /usr/local/apache/htdocs/userad/私のID/ad_f_sjis.p on line 23 Warning: include_once(http://ad.land.to/banner_text.p?en=SJIS) [function.include-once]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /usr/local/apache/htdocs/userad/私のID/ad_f_sjis.p on line 23 Warning: include_once() [function.include]: Failed opening 'http://ad.land.to/banner_text.p?en=SJIS' for inclusion (include_path='.:/usr/local/lib/php') in /usr/local/apache/htdocs/userad/私のID/ad_f_sjis.p on line 23 これは私の設定がおかしいのでしょうか? それとも、サーバ側の問題ですか? CGIを数個設置していますが、関係しているのでしょうか? ちなみに確認する限り、すべてのページに出ています。

    • ベストアンサー
    • PHP
  • htdocsとはなんでしょうか?

    こんばんは。 CentOS7+Apache+PHP5.6でWebページを作りたいと思います。 Linuxfは詳しくありません。 見よう見まねでなんとかphpinfo()まで辿り着けました。 PHPの本を見ながら作ってみようと思いますが、本がXAMPPをベースしていて ドキュメントルートがXAMPP/htdocsになっていました。 ただググるとXAMPPに限らずLinux側でも/usr/local/apache2/htdocsにしていたりするのが見られます。 私のインストールした環境では/usr/local/にはapache2もhtdocsもありません。 htdocsとはなんでしょうか? /var/www/htmlではなくhtdocsにしているのはなぜでしょうか。 もしPHPで利用しなければならない場合何か特別に設定が必要なのでしょうか。 上記についてよろしくお願いします。

  • MovableTypeについて初心者的な質問です。

    MovableTypeでブログを作って書いているのですが それとは別に新しくブログを作成しようとおもうのですが、 新しいウェブログの作成 を選ぶと、 ローカル・サイト・パスと ローカル・アーカイブ・パスと アーカイブのURL が 今あるブログと同じパスを指しているのですが、このまま作成 しても良いのでしょうか? 今あるブログのアーカイブと混ざってしまうといった事は、ないでしょうか? 上記のように思ったので、あえてパスを変更して作成しようとしたところ、 ローカル・アーカイブ・パス への書き込みに失敗しました。 ファイル ローカル・アーカイブ・パス を開けません  とエラーが出ます。 ↓これ /usr/local/apache/htdocs/mt/****/archives.html.new への書き込みに失敗しました: ファイル「/usr/local/apache/htdocs/mt/****/archives.html.new」を開けません: No such file or directory ■設定では各設定パスに****をつけてみました。↓ ウェブログの名前 : **** ローカル・サイト・パス: /usr/local/apache/htdocs/mt/****/ サイトのURL: http://www.xxxxxxxxx.jp/****/ ローカル・アーカイブ・パス:/usr/local/apache/htdocs/mt/****/archives アーカイブのURL:http://www.xxxxxxxxx.jp/****/archives/ ■現在すでにあるブログの設定 ウェブログの名前 : ○○○○○○BLOG ローカル・サイト・パス: /usr/local/apache/htdocs/mt サイトのURL: http://www.xxxxxxxxx.jp/○○○○/ ローカル・アーカイブ・パス:/usr/local/apache/htdocs/mt/archives アーカイブのURL:http://www.xxxxxxxxx.jp/archives/ です。 単純にパスに****をつけたらよいというものではないのでしょうか? 教えてください!!

  • 掲示板(CGI)設置でApacheの意味と使い方を教えて下さい。

    下記掲示板「めぐあい掲示板」を設置しようとしたのですが、Apacheの意味やインストール方法がわかりません。 めぐあい掲示板 [MI_BBS] V4.60のダウンロードファイルに含まれてるマニュアル(mi_bbs.txt)の119行~150行までの意味が全くわかりません。例えば「/usr/binにシンボリックリンクを作成する」の意味がわかりません。 http://www.megumi-island.net/cgi.html#crypt 当方、Apacheを使わない?掲示板やその他のCGIの設置はそこそこ経験がありますが、/usr/local/apache/を作成する方法が全くわかりません。 教えて下されば幸いです。 ちなみにディレクトリの作成とパーミッションの意味と設定方法はよくわかります。 なお、サーバーの環境は/usr/bin/perlです。 /usr/local/apache/ | |--- cgi-bin/ (701) 【スクリプト格納ディレクトリ】 | |--- htdocs/ (701) | | | |--- bbs_data/ (777) 【データファイル格納ディレクトリ】 | | | +--- bbs_file/ (733) 【添付ファイル格納ディレクトリ】 | +--- secret/ (701) | +--- bbs_pass/ (777) 【パスワードディレクトリ】

  • botを作っているのですが、oauth認証に関する質問です。

    botを作っているのですが、oauth認証に関する質問です。 http://www.sdn-project.net/labo/twitter_bot.html こちらを参考にbotをbasic認証からoauth認証に切り替えているのですが、以下のエラーが出ています。 TLに一応は反応してくれるのですが、一つのtweetに何回も反応してしまい、とても困っています。 php等がよくわかっていないので、どうすればいいのかまったくわかりません。 ./(botのid)_Since.datを作ればいいのかと思いますが、何をどうすればいいかもさっぱりです。 どなたかわかる方、教えてくだされば幸いです。 Warning: file() [function.file]: Unable to access ./(botのid)_Since.dat in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 27 Warning: file(./(botのid)_Since.dat) [function.file]: failed to open stream: No such file or directory in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 27 Warning: fopen() expects at least 2 parameters, 1 given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 36 Warning: flock() expects parameter 1 to be resource, boolean given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 37 Warning: fputs(): supplied argument is not a valid stream resource in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 38 Warning: flock() expects parameter 1 to be resource, boolean given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 39 Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 40 Normal termination: 0.9656 sec, 10:58:22 以上に出てくるtwitter_bot.phpは http://www.sdn-project.net/labo/twitter_bot.txtをそのまま使っています。

    • 締切済み
    • PHP
  • apacheのhtdocs

    毎度、お世話になってます。 またくだらない質問かもしれないのですが、 apache で、htmlドキュメントその他いわゆるWebページとして 公開するファイルを置くディレクトリに良く見られるのが /usr/local/apahce/htdocs 等だと思われます。 ですが、私の環境(FreeBSD Release6.1+Apache1.3.34)だと インストール後のデフォルトが /usr/local/www/data になってる ようです。いわゆるレンタルサーバなどの場合、前者/usr/local/apache/htdocs みたいなのを良く見かけたのですが (OSはFreeBSDのバージョン違い)これって、違ってるのが普通 なんでしょうか。 個人的感覚からして、こういうディレクトリ構造ってある程度 似通ってるのが普通なんじゃないかと思っていたのですが。

このQ&Aのポイント
  • MFC-J4510Nの廃インク吸収パッド満杯エラーについて解説します。
  • このエラーが発生する原因や対処法について説明します。
  • また、MFC-J4510Nとはどのような製品なのかについても紹介します。
回答を見る