|
> 日頃から大変お世話になっております。 > > パソコンから携帯電話仕様のYY-BOARDにアクセスしたいのですが、その場合どうすればいいのでしょうか? > > お手隙の際にご指南いただければ幸いです。
やってみました。 クッキーを使用します。 投稿された該当の機種(既定ではFOMA)の絵文字は文字化けします。
Rev2.52
■yybbs.cgi 33行目付近 # メイン処理 &decode; &ViewMode; # 表示モード定義 ← 追加 require "${libDir}lib_bbs.pl";
■yyregi.cgi 34行目付近 # メイン処理 &decode; &ViewMode; # 表示モード定義 ← 追加 require "${libDir}lib_reg.pl";
■yyini.cgi 274行目付近 #------------------------------------------------- # クッキー発行 #------------------------------------------------- sub set_cookie { local(@cook) = @_; local($flag) = 0;
# 閲覧者限定 認証パスワード用 クッキー if ($cook[0] eq 'GATE') { shift(@cook); $flag=1; } #-# ↓ここから追加 #-# # 表示モード定義用 クッキー elsif ($cook[0] eq 'ViewMode') { shift(@cook); $flag=2; } #-# ↑ここまで追加 #-#
local($gmt, $cook, @t, @m, @w);
@t = gmtime(time + 60*24*60*60); @m = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); @w = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
# 国際標準時を定義 $gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT", $w[$t[6]], $t[3], $m[$t[4]], $t[5]+1900, $t[2], $t[1], $t[0]);
# 保存データをURLエンコード foreach (@cook) { s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $cook .= "$_<>"; }
# 格納 if ($flag == 1) { print "Set-Cookie: YY_BOARD_GATE=$cook; expires=$gmt\n"; #-# ↓ここから追加 #-# } elsif ($flag == 2) { print "Set-Cookie: YY_BOARD_ViewMode=$cook;\n"; #-# ↑ここまで追加 #-# } else { print "Set-Cookie: YY_BOARD=$cook; expires=$gmt\n"; } }
#------------------------------------------------- # クッキー取得 #------------------------------------------------- sub get_cookie { local($key, $val, *cook); local($str) = @_;
if ($str eq 'GATE') { $str = 'YY_BOARD_GATE'; } #-# ↓ここから追加 #-# elsif ($str eq 'ViewMode') { $str = 'YY_BOARD_ViewMode'; } #-# ↑ここまで追加 #-# else { $str = 'YY_BOARD'; }
# クッキー取得 $cook = $ENV{'HTTP_COOKIE'};
# 該当IDを取り出す foreach ( split(/;/, $cook) ) { ($key, $val) = split(/=/); $key =~ s/\s//g; $cook{$key} = $val; }
# データをURLデコードして復元 @cook=(); foreach ( split(/<>/, $cook{$str}) ) { s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg; push(@cook,$_); }
return (@cook); }
【続く】 |
[返信]
[修正]
[削除]
|