• ベストアンサー

ソースが表示されてしまいます

CGIでメールフォームを設置したのですが、今までHTTPサーバで動いていたCGIを今回SSLサーバにもって行きました。 IE6.0では、メールも届くし、表示も問題ないのですが、Netscape7.1だと、CGIでPOSTしたあとの送信前確認ページが、テキストでコードが表示されてしまいます。 それはCGIのプログラムコードが表示されるのではなく、CGIが書き出すHTML部分のコードだけが表示されます。(print "~~"のところだけ) これはサーバ側の問題?プログラム? わかる方教えてください~

noname#225081
noname#225081
  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

>IE6.0では、メールも届くし、表示も問題ないのですが、Netscape7.1だと、CGIでPOSTしたあとの送信前確認ページが、テキストでコードが表示されてしまいます。 >HTML部分のコードだけが表示されます。(print "~~"のところだけ) cgiは動作していると思います。 そのcgiが出力するheader が「Content-type: text/plain」になっていたりしませんか? IEは、header情報を無視するとか十分解釈しないとか云う記述をどこかで見たことがあります。version upしても同じなのか未確認です。 netscapeは、ページの中身より、header情報に忠実に表示するそうです。 サーバー変更に伴って起きると云うことでしたら、サーバーでheader情報を、なにか付加しているということも考えられます。 netscape7では、メニューの[表示v]-[ページ情報I]でそのページのファイルタイプなどが確認出来ます。

noname#225081
質問者

お礼

print "Content-type: text/html;charset=Shift_JIS\n\n"; と記入したらNNでも動作するようになりました! 貴重なヒントありがとうございました。

noname#225081
質問者

補足

NNで情報を見てみたのですが、text/plain になってました! CGI側にhead情報を書くところがあって print " HTTP/1.0 200 OK\n"; print " Content-type: text/html\n\n"; とあるんですが、どう直したらいいんでしょうか?

関連するQ&A

  • CGI生成ページをNetscapeで表示するとソースが表示される

    Perlで組んだCGIですが、Netscapeで表示するとHTMLソースが表示されてしまいます。IEだと問題なく表示されるのですが、どなたか心当たりのある方いらっしゃいましたら、どうか情報を御提供下さい。 ※ちなみに確認しているNetscapeは7.02です。

    • 締切済み
    • CGI
  • フリーCGIで出来たメールにSSLをかけるには?

    フリーCGIで出来たメールフォームを、ホームページに設置予定です。 サーバーのメールの仕組みからではなく、 CGIから発信される仕組みのようです。 このメールフォームには個人情報を書き込む項目が設けられているので、 SSLをかけて暗号化された状態で送信者から受信者まで届く仕組みにしたいと考えています。 暗号化されてほしいのは、 【発信者】~【サーバー】~【インターネット】~【受信者】 の間すべてです(「~」の部分です)。 色々調べてみたところ、 「CGIから発信されるタイプのメールにはSSLはかけられない」 「サーバー自体にSSLがかかっているのでSSLはかけられる」 「発信者とサーバーの間だけがSSLで、  サーバー以降にはSSLがかからない」 「発信者~受信者までの道程全てにSSLをかけるには  ベリサインセキュアメールIDの取得が必要だが高額、  設置もプログラム知識が無いとムリ」 等、どの情報が正しいのか判別がつかない状態です。 CGIから発信される仕組みのフリーCGIで出来たメールにSSLはかけられますか?それにはどのような準備が必要でしょうか?どなたか、助けてください。よろしくお願いします。

    • 締切済み
    • CGI
  • SSLでメールフォーム

    メールフォーム入力画面でSSLを使用したいと思っています。SSLはレンタルサーバの共有SSLを使用します。SSLの対応にはメールフォームのプログラム(CGI)がSSLに対応していないとダメなのでしょうか? メールフォームは有料cgiを使っています。

    • ベストアンサー
    • CGI
  • パーミッションについて

    お世話になります。 SSL領域にメールフォームCGIを設置し、メール受信しています。サーバから設置するCGIはパーミッションを「660」に設定することと指示がありましたが、それだとエラーになってしまい、「755」だと動作します。 「755」だと情報の保護的に何か問題があるのでしょうか。

    • ベストアンサー
    • Perl
  • CGIの文字コードについて

    CGIを下記URLのサイトから落として、メールフォームを設置しました。 http://www.synck.com/contents/download/cgi-perl/mailform_jcode.html 「メールフォームCGI UTF-8対応版」というメールフォームです。 mailformというフォルダの中に send.cgi(プログラム本体) check.cgi(設置確認プログラム) count.dat(通し番号を記録するファイル) があり、send.cgiはメールアドレス等を書き換える程度の編集をしております。 フォームには必須項目を設け、何も入力せずに送信ボタンを押すと、「●●が入力されていません」というようなダイアログが表示されます。ですが、必須項目を入力して送信ボタンを押すと500エラーがでます。 「●●が入力されていません」という表示がなされるということは、cgiの設置自体はとりあえずできていると考えてよろしいですよね? 文字コードが問題だと思い、検索かけてみたもののよく理解できず、色々な文字コードで保存しては、実際にアップしたメールフォームを使って試していたら、一度だけ、設定したメールアドレスにきちんとメールが届きました。しかし、自動で送信される送信内容を確認するメールの方が文字化けしてしまいました。 逆に、自動で送信される送信内容の確認メールは届かないが、文字化けしたメールが設置したアドレスに来たこともありました。 設置者へのメールを送信者への内容確認メールが文字化けせずにきちんと送れたことはありません!! 長くなりましたが、どの文字コードで読み込み、そしてどの文字コードで保存したら良いか分かりません。 cgiの編集はTerapad、サーバはさくらインターネットのライトです。 サーバへのアップは直接さくらインターネットにログインして行っております。 ※CGI初心者です。初めて設置する完全素人です。 よろしくお願いします!!

    • 締切済み
    • CGI
  • どうやったらフリーCGIメールフォームにSSLをかけられますか?

    当方、初心者です。 会社の都合で、独学で学びながら ホームページを作成するハメになってしまいまして、 毎回ネットや本で調べたりしながら、 今迄いくつかのホームページ (HTMLにフリーCGIを組み合わせた簡素なもの)を作ってきました。 しかし今回作るホームページにはSSLが必要で、 どうして良いのやらさっぱりわからず…。 知識がなく、見当違いなことを書いているかもしれませんが、 どうぞ宜しくお願いします。 これから作成するホームページに メールフォーム(フリーのCGIです)をつけるのですが、 個人情報をやりとりするメールフォームなので、 SSLをかけねばと思っております。が、 SSL証明書の取得や、SSLの組み込み方など全くわかりません。 そこで、SSL付きのレンタルサーバーを借りようと 考えているのですが…。以下、疑問点をまとめてみました。 1)SSL付きのレンタルサーバーを借り、 フリーCGIで出来ているメールフォームに SSLを掛けることは可能でしょうか? サーバーにもよると思いますが、 だいたい、どのような手順になるのでしょうか? 1)レンタルサーバーは、 出来るだけメジャーなところに決めたいと思っています。 が、一体どこが有名どころなのか、全くわかりません。 おすすめのサーバーがありましたら お教え願えませんでしょうか? 以上、どうぞよろしくお願いいたします。

    • 締切済み
    • CGI
  • SSLでのファイル設置について

    初歩的な質問ですが、参考文献が見つからなかったのでアドバイスをいただければと思います。 Webサーバー上にメールフォーム.htmlからメール送信.cgiを呼び出して、フォームメールを送信するページがあります。 これを、SSLで暗号化するができるだけ現在の構成を変更しないようにという要件です。 メール送信.cgiはSSL用フォルダに設置していますが、メール送信.cgiに値を渡すメールフォーム.htmlもSSL用フォルダに保存するべきなのでしょうか? それとも、呼出先がSSL用フォルダに保存されていればメールフォーム.htmlとメール送信.cgiの間の通信はSSLで暗号化されるのでしょうか? 上記要件からできればメールフォーム.htmlは動かしたくないのです・・・

  • SSLはページとメールフォームCGIどちらもSSL対応に?

    SSLを導入したいと考えております。 ・注文ページとなるHTMLファイル(ページ) ・メールフォームCGI(送信データがサーバに蓄積されるタイプ) ページもCGIもどちらもSSL領域に置く必要があるのでしょうか? それとも、 ページだけSSL領域におけばいい、 CGIだけSSL領域におけばいい、 ということなのでしょうか? 教えていただけると幸いです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • CGIから出力される文字が化けて表示される

    メールフォームのCGIが出力するHTMLがブラウザで正常に表示されません。 HTMLで書いたメールフォームから、CGIを使って指定メールアドレスに文面を送信するページを作っています。 CGIとメールフォームは、ページを設置するレンタルサーバのサポートから入手した、公式のバージョンに手を加えて使っていますが、動作中に表示されるページの一部が文字化けする障害が発生してしまいます。 状況は下記の通りです。 1.フォームの送信ボタンを押すと、内容確認を促すページにジャンプ、もし入力漏れがあれば   警告ページにジャンプするのですが、どちらにジャンプしても表示が化けてしまいます。 2.文字コードを確認すると、CGIから出力されたHTMLが欧文(ISO)形式として認識されています。 3.CGIと、呼び出しに使っているHTMLはEUC形式で保存されているので、表示モードをEUCに   切り替えると、正しい内容で表示されます。   また、実際にメールを送信すると、受信メールも正常に送られています。 4.送信が正常に済むと、その旨を確認するページが表示されるのですが、そのページは正しく   表示されます。(文字化け表示のまま遷移しても、正しく表示されます) 5.文字化けしているページのソースを確認すると、一応charasetでコードがEUCに定義されている   ようなのですが、ブラウザ側では認識されていないようです。 画面の遷移を整理しますと、【フォーム】>【確認/警告】>【送信完了確認】となりますが、真ん中にある「確認/警告」の両ページのみが文字化けする、という感じです。 何か対応方法をご存知でしたら、ご教授頂けますでしょうか。 よろしくお願い致します。

    • 締切済み
    • CGI
  • ローカルでは動くがサーバーでは動かない・・・

    メールを配信するCGIがあります。 フォームで登録するようになっているのですが、フォームで登録した際に、御礼のメールを配信したいと思って下記のようなphpを作っています。 フォームから送信されたデータを受け取り、送信者にメールを送った後、別のCGI(perl)にPOST送信するphpを作っています。 ローカルに作ったphp環境では動いたのですが、サーバーにアップロードすると下記のエラーが出て動きませんでした。 エラーメッセージ Warning: main(HTTP/Request.php): failed to open stream: No such file or directory in /home/*****/public_html/cgi/********/mail.php on line 34 メールを送信する部分は特に問題なく動いているみたいで問題はほかのcgiにPOST送信する部分にあるみたいです。初心者なのであるHPに掲載されていたコードをまる写しして必要な部分だけ変更しただけで、あまり意味は分からないままです。 /*POST送信*/ require_once "HTTP/Request.php"; $req =& new HTTP_Request("http://www.***.jp/******/cgi/**********/cgi-bin/*****.cgi"); $req->setMethod(HTTP_REQUEST_METHOD_POST); $req->addPostData("mail", "$mail"); $req->addPostData("md", "*****"); $req->addPostData("id", "**************"); if (!PEAR::isError($req->sendRequest())) { $response1 = $req->getResponseBody(); } else { $response1 = ""; } エラーメッセージにある34行目というのは require_once "HTTP/Request.php"; なのですが、どこに問題があるのでしょうか?

    • 締切済み
    • PHP

専門家に質問してみよう