Betamoのプロフィール
- ベストアンサー数
- 5
- ベストアンサー率
- 41%
- お礼率
- 11%
Perlは今年の7月半ばにはじめたばかりです
- 登録日2004/09/27
- INPUT NAMEの文字化け
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"; }
- print "Content-type: text/html\n"; の行方
以下のようなスクリプトを作ってみました。 #!/usr/local/bin/perl print "Content-type: text/html\n"; print "\n"; print "<HTML>\n"; @week = ('Sunday','Monday','Tuesday','Wednesday','Thursday'); print $week[3],"\n"; print "</HTML>\n"; ------------------- 二つ疑問があります。 (1)ブラウザで表示されるページのソースを見ると、<HTML>から始まっています。 print "Content-type: text/html\n"; print "\n"; この部分はどこかにprintされているのでしょうか。 (2)Internet ExplorerとFirefoxでは表示されるのに、Lunascapeではエラーとなり表示されません。 どうしてそうなるのでしょうか。 よろしくお願いいたします。
- ベストアンサー
- CGI
- noname#183584
- 回答数1
- カウンター キリ番&IPロック
いぜん・・2ヶ月くらい前にどこかのサイトで文章を読んでいまさらながら見つけれないので質問します。 私はPerlで行っています。 キリ番機能とロックを付けた場合、Aさんが999を取ってBさんが1000を取っておめでとうページに飛ばされて、Aさんがまた戻ってくると、2重防止でAさんも1000になり、2人も1000番が出てしまいます。この回避方法はどうすればよいにでしょうか? 誰かが保存ファイルを開いているときに誰かが来たら待つようにするロックですが、3人が重なったらなど、深くかかれていました。そして、こういう対策をしていくと、CGIが重たくなるので機能を抑えながら万全の対策はどれくらいがいいのでしょうか? お願いします。
- ベストアンサー
- CGI
- tetratetra
- 回答数1