CGIがまったく分からない者ですが、会社からホームページ管理を任されてしまいました。INPUT NAMEを日本語にすると文字化けになり、困っております。ご存知の方、どうか中のソースをどう編集したら良いのか細かく頂けたら本当に助かります。
以下、CGIのソースです。
#本文タイトル
$honbun_title = '■□ 申込 ■□';
#time
#($sec, $min, $hour, $mday, $mon, $year, $wdy, $yday, $isdst) = Localtime(time);
$clength = $ENV{'CONTENT_LENGTH'};
if($clength ne '')
{
read(STDIN, $query_string, $clength);
@elements = split(/&/,$query_string);
$i = 0;
foreach $element (@elements)
{
(@name[$i], $buf) = split(/=/, $element);
$buf =~ tr/+/ /;
$buf =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*buf, 'jis');
@value[$i] = $buf;
$i++;
}
&jcode'convert(*honbun_title, 'jis');
&jcode'convert(*ftitle, 'jis');
open (MAIL, "|$sendmail $trans");
print MAIL "From: $smail ($sname)\n";
print MAIL "Subject: $ftitle\n";
# print MAIL "$year\n\n"
print MAIL "$honbun_title\n\n";
for($j = 0; $j < $i; $j++)
{
print MAIL "■@name[$j] : ";
print MAIL ": @value[$j]\n\n";
}
close(MAIL);
print "Location: $query_file\n\n";
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
(@name[$i], $buf) = split(/=/, $element);
$buf =~ tr/+/ /;
$buf =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*buf, 'jis');
@value[$i] = $buf;
$i++;
ここを
($key , $buf) = split(/=/, $element);
$buf =~ tr/+/ /;
$buf =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*buf, 'jis');
$key =~ tr/+/ /;
$key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*key, 'jis');
$value[$i] = $buf;
$name[$i] = $key;
$i++;
こんなかんじ?
No.1
- 回答日時:
NAMEに日本語を使う場合は、値の方にURIデコードを掛けるのと同様に、NAME側にもURIデコードを掛けないといけません。
というか、できればNAME側は全角文字を使わず、半角英数字のみの方が良いです。
あと、メールフォームのようですが、メールのサブジェクト(件名)はJISにした後、BASE64エンコードしないといけません。
(メールソフトで文字化けする可能性があります)
また、Content-Typeも吐かせたほうが良いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
デコードできない時があります><
-
【C#】数値の範囲チェックについて
-
Perl/CGIでスロットマシンを作...
-
Application.ScreenUpdating = ...
-
文字の横にプルダウンを表示さ...
-
VB6で、長い時間かかる処理...
-
実行時エラー 3020の対策
-
構造体の各データの表示につい...
-
セレクトメニューで2つの項目...
-
出来ているHTMLに無料CGIをつけ...
-
pythonで演算子を変数に代入す...
-
malformed header from script....
-
formで特定のinputを送信しない...
-
Pythonを用いてCGIを作る勉強を...
-
<SELECT>タグの折り返し
-
どちのほうがすきですか?
-
少数点以下の桁数について
-
セレクトボックスの内容を中央寄せ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
【C#】数値の範囲チェックについて
-
Perlでアルファベットを数...
-
途中まで出来ているのですが‥(D...
-
フォームで入力した値を表示し...
-
linq で 楽天ウェブサービスのX...
-
リロード後にプルダウンの選択...
-
CGIからメールに書き出しする際...
-
map(STL)でinsertを行いたいで...
-
半角スペースが有効にならない。
-
CGI(Perl)で、Net::FTPを使いたい
-
iteratorの再利用について
-
Visual Basicで作成したプログ...
-
クリックしたら順番に並び替わ...
-
ラズパイで感圧センサーを動か...
-
デコードできない時があります><
-
パターンマッチで変数でマッチ...
-
gpioを使ってSPIをシミュレーシ...
-
Application.ScreenUpdating = ...
おすすめ情報