• 締切済み

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
  • 回答数2
  • ありがとう数2

みんなの回答

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.2

「UTF-8対応版」と明記されているなら、画像以外のすべてのファイルの日本語文字コードを「UTF-8」で、改行コードを「LF」で保存して、それをASCCIモードでサーバーへ転送すれば良いと思いますよ。

bantam999
質問者

補足

ご回答ありがとうございます。 実はサイトの文字コードがよく分からないのです…。一番はじめはビルダーで作成していたので、自動で挿入されるメタタグを見るとどうやら、シフトJISらしいです。 これが問題なのですかね? アップした後、ファイルマネージャの文字コードをいじる部分で、その「UTF-8」というものに変換できるのでしょうか? 「文字コード」でググってみたものの、文字コード自体の説明しかひっかからず、理解できておりません。

回答No.1

謝礼は? 少し分析してみない事には分かりませんね。 回答でない回答になると原則的には違反のようなので一つだけ回答 >cgiの設置自体はとりあえずできていると考えてよろしいですよね? ダイアログという事もあり、javascriptで表示させている可能性も高いと思いますね。

bantam999
質問者

補足

ご回答ありがとうございます。 ちょっと勘違いしていました。 >「●●が入力されていません」という表示がなされるということは ではなく、 設置者にはメールが届くので、 設置自体は、とりあえずできたと思います。

関連するQ&A

  • CGIから出力される文字が化けて表示される

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

    • 締切済み
    • CGI
  • メールフォーム(CGI)で英語のメッセージを受け取るには?

    メールフォームで英語のメッセージを受け取るには? 現在使っているmailformのCGIが日本語用なので、英語でのメッセージを 送信するとき、エラーメッセージ等が文字化けしてしまいます。 (エラーメッセージを英語にしたりしてみましたが、細かい項目などが 文字化けします。) 英語用のCGIはどこで入手できますか? できれば、設置説明が日本語だとありがたいです。

    • ベストアンサー
    • HTML
  • こんなメール送信できるCGI、何方かご存知ありませんか?

    こんなイメージのメール送信CGIを探しております。お金をかければ、あるのですが・・・。できれば、無料でやりたい(小額であれば有料でもいいのですが・・・) ★入力フォームにて各項目入力 ・・・各BOXに対しては、"必須項目・必須項目ではない"などの選択ができる ・・・↑CGIの記述で ★必須項目が抜けたまま送信しようとすると、  送信ボタンクリック後、"xxxが抜けてます。  入力してください"などのエラーメッセージが表示される。 ★メールアドレスの入力BOX、確認のため再度メールアドレスの入力BOX ・・・送信後、同じ内容なければ、エラーとなる。 ★送信内容のコピーを、ユーザー側に"送信する・しない"などの選択ができる ・・・ユーザー側に送信されるテキスト内容は、オリジナル文章を追加可能   例)   お問い合わせありがとうございます。   お客様の内容は下記となります。    ~~~入力フォーム内容コピー~~~ ★送信確認画面を"表示する・表示しない"などの選択ができる ・・・↑CGIの記述で ★送信完了後、同時に2つのメールアドレスに送信される 以上です。 やはり無料は難しいですかねぇ・・・?

    • ベストアンサー
    • CGI
  • CGIフォームからのsendメールが文字化けしてしまいます

    CGIフォームについて質問です。 フリーのCGIを使用してメールフォームを制作したのですが、sendメールが文字化けしてしまい、対処法がわからず行き詰まっています。 UFF-8対応のメールフォームCGIなのですが、送られてきたメールが下記のように全角のみ文字化けしてしまっています(メールアドレスの部分は文字化けしていません)。//////////////////////////////////////////////////////// お問い合わせいただきましてありがとうございます --ご送信内容の確認------------------------ 以下の内容が送信されました。 /*-email ****@*****.com /*-???????????? ???????????????????????? /*-????????? ????????? /*-???????????????????????? ?????????????????? ------------------------------------------ お問い合わせに関しましては、営業日3日以内にご対応させていただきます。 いましばらくお待ち頂けますようお願いいたします。 ///////////////////////////////////////////////////////////// このCGIは今まで何度も使用してきた物なので、いつも通りsend.cgiの設定(FROMのメールアドレスや、メールのタイトルなど)を変更しました。 ただ会社のサーバに設置するので、CGIを置くフォルダが制限されていたため、指定通りのフォルダにsend.cgiを入れパーミッションの変更もhtml側のactionのパスも変更しました。 ちなみに会社のサーバのディレクトリは +cgi---send.cgi | | form.html となっています。 このCGIを動かすには「Jcodモジュール」がインストールされていないといけないので、それがインストールされていないからかと思い、サーバ管理者に聞いてみたところ「Jcode.pm」はインストールされているとの事でした。 「Jcodモジュール」と「Jcode.pm」は違う物なのでしょうか? いつも使用している物なので、おかしいなと思い、同じファイルをプライベートで使用しているサーバにアップした所、文字化け無しのメールがきちんと届きました。 send.cgiのソース(設定変更できる部分)は下記のように記述されています。 #!/usr/bin/perl ## 2007-04-08 Ver.5.2 #require 'jcode.pl'; use Jcode; #server check (SPAM CHECK) $this_server = $ENV{'SERVER_NAME'}; #CGIソース内で設定する場合は下記に書きます。 #※HTMLで設定している場合無視されます。 $sendmail = '/usr/sbin/sendmail'; @mailto = ('*****@****.co.jp'); $thanks_url = 'http://***.net/**/thanks_01.html'; $subject = 'お問い合わせ'; $return_subject = 'お問い合わせありがとうございます'; $return_body = <<"EOF"; この度はお問い合わせありがとうございます。 --ご送信内容の確認------------------------ 以下の内容が送信されました。 [[resbody]] ------------------------------------------ お問い合わせに関しましては、営業日3日以内にご対応させていただきます。 いましばらくお待ち頂けますようお願いいたします。 EOF この[[resbody]]の所が文字化けしている状態です。 上記の記述の後にもソースが書かれているのですが、ここはいつも一切いじりません。 form.htmlのエンコーディングも <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-type" content="text/html ; charset=UTF-8" /> となっています。 ネットで色々検索してみたのですが、解決策に行き着く事が出来ずこちらに投稿させていただきました。 よろしくお願いいたします。

    • 締切済み
    • CGI
  • KentWebのCGIメールフォームの文字化け

    KentWebのCGIメールフォームを設置いたしました。 しかし、送信ボタンをおして、確認の画面が出たときには、文字化けしてしまっています。 ネットで調べたところ、 文字コードの決定が原因ということはわかったのですが、どこを直せばいいのかさっぱりわかりません。 初心者で、本や説明書を見ながらの見よう見まねで作成したHPなものですから、あまり技術的な事はわかりません。 したがいまして、情報としてずれているかもしれませんが、いくつかを記載しておきます。 メールフォームのHTMLのコードは<html lang="ja"> CGI  # Jcode宣言 my $j = new Jcode; とりあえず、どこをチェックすればよいのかアドバイスをお願いいたします。 非常に困っています。よろしくお願いいたします。 使用環境 windous7 ドリームウィーバーCS6 FFFTP

  • cgiスクリプトの文字化け

    既存のCGIライブラリ(cgi-lib.plとjcode.pl)を用いて、登録フォームを作りました。しかし、「入力」を押して、CGIを作用させると、文字化けがおこってしまいます。 cgiのなかで、文字コードをeucに変換しています。(jcode::convert機能)サーバーのCGI設定は全て確認しましたし、パーミッションも確認しています。文法などはあってると思いますし、ディレクトリ、文字コード(euc)・改行コード(LF)も確認しています。 他に原因があると思うのですが、回答よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 文字化け

    携帯サイトにcgiでつくられたフォームを設置したのですが、 自動返信で送られるメール(送信先はyahooアドレス)が PCでyahooメールをみると正常なのですが、同じメールを携帯版yahooからみると、全部文字化けしています。 どうすれば文字化けせずみれますでしょうか。 cgiはよくわかりません。PCサイトで問題なく動作しているものを使っていますが、配布元も分からず・・・

    • 締切済み
    • CGI
  • フォームメールを受信すると文字化けをします。

    携帯サイトにCGIフォーム(CGIの文字コードは全てshift_jis)を設置しています。 iMacや、iPatや、ThanderBirdで、受信をすると、すべて、文字化けします。 Macで、POPを返さない方が文字化けをしないと聞いたので、受信アドレスをgmailアドレスに変えましたら、Mac系では、文字化けがなくなりました。 が、同時に、普通のメールアドレスを設置し、ThanderBirdで受信をしましたら、やはり文字化けをします。 ThanderBirdのエンコード設定は、ISO-2022-JP となっていて、少し調べましたら 「インターネットでは7bitの文字コードでやりとりするのが標準なので、日本語の場合は7bitの「JIS(ISO-2022-JP)」という文字コードを使うよう定められている。Shift-JISやEUCは8bitの文字コードなので、送信の際、メールソフトがこれをJISに変換するのが普通だ。」とのこと。 半角カタカナなどは、含まれていないのですが、やはり、フォームメールを受け取りますと、文字化けをしてしまいます。 届いたメールは、タイトルは正しく表記され、中身が、文字化け。 メールのエンコードをShift-JISに変換すると、逆に、タイトルが文字化けし、本文(中身)が、正しく表記されます。 OUTLOOKなどWindowsの仕様のものを試していないのですが、 何かを修正すると、文字化けせずに、閲覧できるのか、もし、方法があれば、おおしえいただければと思いました。 使っていますCGIフォームは http://www.kurohama.net/c5.shtml 今は、Shift-JISですが、UTF-8に変換はできるようです。 どうぞ よろしくお願いいたします。

    • 締切済み
    • CGI
  • コード上の埋込み漢字コードの文字化け

    PHP のソースコード上に埋め込んでいるべた書きの2バイトコードが 文字化けを起こしてしまいます。以下、経緯を含め詳しく書きます。 1.HTMLのFORMよりデータを入力。(toiawase.html) 2.PHPにて、入力データをWebブラウザ上に表示して確認。(mail_kakunin.php) 3.PHPにて、確認済みのデータをmail()関数にて送信。(mail_send.php) 上記の状態で正常動作を確認。 「1」の toiawase.html にて、charsetをUTF-8にする必要があり 下記のように charset のみ書き換えました。 <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" /> すると以下の不具合が発生しました  ・上記の「2」の部分ですでに入力したデータのみ文字化けを起こす。  ・当然、「3」にての送信でも入力データのみ文字化けして送られる。 よって、「2」のmail_kakunin.php にも以下の分を追加しました <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" /> すると以下のような不具合が発生しました  ・上記の「2」の部分で入力データは mb_convert_encoding() で UTF-8   に変換し、文字化けしませんが、今度はPHPのコーディングでべた書きの2バイト   コードが文字化けを起こす。 HTML上で、UTF-8 の漢字コード指定なので、PHPにべた書きの2バイトコードも UTF-8 で出力する必要があるのですが、やり方がわかりません。 ご存知の方教えていただけると助かります。

    • ベストアンサー
    • PHP
  • CGIが途中で動作がおかしくなる?

    こんにちわ。 いつもお世話になっております。 現在、HP内にメールフォーム(CGI)を設置しております。 他のサーバーでは通常通り動作するのですが、今のサーバーでは処理が途中で止まってしまっている?みたいなんです。 CGI動作内容 HP上にて必要項目を入力、確認ボタンをクリック ↓ 確認画面が立ち上がり、送信ボタンをクリック ↓ 必要項目内に記入した返信用メールアドレスに送信内容確認メールの送信、 同時にCGI内で私(管理者)のアドレスに記入内容のメールを送信 最後の段階で、私の方にメールが届かないのです。(送信内容確認メールは届く) 他サーバーでテストしてみましたが、通常通り動くのでCGIの記入ミスは無いかと思います。 スクリプトのパスはサーバーの指定に従っています。 サーバー管理者に問合せてみましたが、CGIの内容に関してはサポートしていない、とのことです。。 私自身、CGIもPerlの知識も殆ど無い為、理由が分からないでいます。。 (メールフォーム用のCGIはサイトからダウンロードしたものです) 考えられる原因は何でしょうか? 出来れば早めにご回答頂きたいです。

    • ベストアンサー
    • CGI

専門家に質問してみよう