safariで買い物かごに残らない
ある買い物カゴCGIを使用していますがsafariだと日本語表記の商品だけ買い物カゴに入れても残りません。
次の買い物をしたり買い物カゴを確認した時に入っていません。英数表記の商品は大丈夫です。
CGIそのものが古いので替えるのがベストなんですが、諸事情により当面これを使用しなければいけないので何とか御教授お願い致します。
多分下記の部分が問題だと思うのですがCGIなどは全くの素人なので分かりやすくお願い致します。
***********************************************************
if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 記録するデータはsjisに統一する
&jcode'convert(*name,'sjis');
&jcode'convert(*value,'sjis');
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/://g;
$value =~ s/,//g;
$FORM{$name} = $value;
}
$soryo = $FORM{$soryo};
#--------#
$cookies = $ENV{'HTTP_COOKIE'};
@cookie_pairs = split(/;/,$cookies);
foreach $cookie_pair (@cookie_pairs) {
($name, $value) = split(/=/, $cookie_pair);
$name =~ s/ //g;
$DUMMY{$name} = $value;
}
$goods_next = 0;
foreach $goods_num (1 .. $#cookie_pairs + 1) {
$cookie_name = 'CARGO_'.$goods_num;
if ($DUMMY{$cookie_name} =~ /^goods:/ || $DUMMY{$cookie_name} =~ /^removed/) { $GOODS[$goods_num] = $DUMMY{$cookie_name}; $goods_next = $goods_num + 1; }
}
#--------#
***********************************************************