dポイントプレゼントキャンペーン実施中!

お問い合わせフォームをつくり、入力して送信すると、名前を全角で入力していると「半角カナ」で入力しないでくださいと表示されます。

メッセージでも同じ表示がされ、結局全ての入力を半角英数で入力すると送信されます。

理由がわかりません。どなたか教えていただけませんか。

A 回答 (3件)

送信するとはメールのことでしょうか。



メールの場合、件名、本文に使われる文字コードが決まっています。

文字コードには
ASCII
JIS
Shift-JIS
EUC
UTF8
などいろいろあります。
http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97% …

適切な文字を使用するか、文字コードの変換が必要な場合があります。

作られたページの

<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">

のcharsetでお使いの文字コードが判ります(上記は EUC-JP の場合)。

メールの場合(日本語)は JIS に変換する必要があります。変換しない場合はサーバの文字コードで扱われますので、文字コードの違いによりエラーになります。

例えば PEAL で作った場合ですと
------------------------------------------------------------
my $from = shift;
my $to = shift;
my $subject = shift;
my $mess = shift;

&Jcode::convert(\$mess,'jis');
$mess =~ s/\r\n/\n/g;

&Jcode::convert(\$subject,'jis');

$subject = &encode_base64($subject);
$subject =~ s/[\r\n]//g;

$subject = '=?ISO-2022-JP?B?'.$subject.'?=';

print SMTP "Errors-To: $from\n";
print SMTP "Sender: $from\n";
print SMTP "To: $to\n";
print SMTP "Content-Transfer-Encoding: 7bit\n";
print SMTP "Content-Type: text/plain\; charset=ISO-2022-JP\n";
print SMTP "Subject: $subject\n";
print SMTP "\n";
print SMTP "$mess\n";
close SMTP ;
return
------------------------------------------------------------
のように、convertとかencode_bas64で変更しています。

メールかどうかわかりませんが、このような文字コードの処理が抜けているためにエラーになっていると思われます。

お使いのサーバの言語で文字変換をどのように行なうか調べてみてください。
    • good
    • 0
この回答へのお礼

お教えくださりありがとうございます。しかし、説明のほとんどが理解できない私ですが、どうしてもHPに必要なので必死です。

インターネットでも検索して、先ほどやっと

<html xmlns="http://www.w3.org/1999/xhtml">
このタグの中に
<xml:lang="ja">
を入れました。

インターネットでは
<html lang="ja">

を入れるよう支持されて、それを記入して、バリデートするとエラーで、
<xml:lang="ja">
と表示するようソフトがマークアップしてきました。

このレベルですので、たどりつくかどうか・・・。

実際にアップした画面のアドレスをご案内しますとソースを御覧になって、もっと詳しいアドバイスをいただけるのかもしれませんが、まだ公にできないのです。

もう少し試行錯誤してみます。この回答していただいた内容がわかるようになりたいとおもっています。ありがとうございました。

お礼日時:2010/07/04 22:07

理由はあなた以外の誰にもわからないでしょう。



CGIをもう一度確認してください。
 きちんとエンコードされているか?
 CGIの文字コードは指定されたものか?
 判別式に誤りはないか?

 そこいらをチェックすると答えはある。それくらいの基本的なことは、いくらなんでもできないとCGIは扱えないです。
 
    • good
    • 0

半角カナは機種依存文字であり、文字化けの原因になるからです。

    • good
    • 0
この回答へのお礼

早々にご返事ありがとうございます。申し訳ないのですが、CGIは初めてでまったくわかっていません。しかし、どうしても作らなくてはいけないのでDreamweaverCS4 で作ったページをeonetでアップしたのですが、(アップするのも四苦八苦の状態でした)やっとウエブ上に表示されて安心したところ、今の状態です。回答くださったあなたはパソコンに詳しい方ですが、私は本当に何もわからずに本を片手に作っています。
ですので、回答くださっている内容もよくわかりません。
問い合わせフォームに「全角漢字ひらがな」で入力しても「半角カナを使用しないで下さい」と表示されるのです。
DreamweaverCS4 のCGIのところも読みましたが、とても難しくて、どこをどう変更すれば良いのかわかりません。eonetに問い合わせましたが、作ったソフトの問題なので答えれないとのことです。
もう少し調べてみますが、・・・・・・・解決できるかわかりません。

お礼日時:2010/07/04 17:16

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