ようこそゲストさん

CPA-LAB管理人用

2007/12/07(金) ドコモ端末でログインできない(一応解決)adiary1.44

はてなブックマークの情報 はてなブックマークに登録 はてなブックマーク数 2007/12/07 19:11 adiaryスポック
なぜか、ドコモ(Docomo)の701シリーズの携帯電話端末でログインできない事象が。。。
たぶんクッキー(Cookie)が使えないことが問題か?(でも他の端末もクッキー利用不可だよね)
これまで多くの人が使用しているのだから、おそらくこちらの設定かサーバーの問題か。。。。
たぶん、IDとセッションIDの引き回しがうまくいっていないのが原因だと思っていたら。。。

通常のログインができないことへの対策

diary.pmの
if ($auth->session_auth($1, $2)) {
で,session_authを呼び出した時、auth_auto.pmの
sub session_auth {
	my ($self, $id, $session_id) = @_;
で、引数を受け取っているだが、これがうまく引き渡せてないことがわかった。

しかし、ソースコードに問題があるとは思えない。。。。。
でも、引き渡し直前の$1,$2には、IDとセッションIDが入っているのに、session_auth側では、その値が入っていない。。。。

しかも、PCでのログインはできているわけだから、session_auth側の問題でなく、呼び出す側の問題と思って試行錯誤。

すると、diary.pmから呼び出す直前に
my $spok_1=$1;
my $spok_2=$2;

if ($auth->session_auth($spok_1, $spok_2)) {
と、いったん特殊変数から通常の変数にコピーしてから呼び出すと、うまく引き渡せた。

ネットで調べたが、そんな事象はどこにも書いていないし、さくらインターネットのPerlの設定のせいなのかなんなのか。
ちなみに
Perl : /usr/bin/perl (Ver 5.8.8)
う~。解明にはかなり時間かかりました。
もうすぐ他の奨学生ブログがオープンなので、まあまあなんとか応急処置ということで。
perlを知らない日曜プログラマには、ちょっと重荷の事象でした。

かんたんアクセスができないことへの対策

diary.pmの一部追加と変更
my $spok_11=$1;
##spok_changed  $1 → $spok_11
		my $u = $auth->get_userinfo($spok_11);
通常ログインの変更と同じことですが。。。。


このツールにお世話になりました。
i-modeシミュレーター

# nabe 2007年12月08日(土) 深夜2時30分

いつもいつもご報告ありがとうございます。こちらで試したところ再現しませんでしたが、症状からして Perl の Version による差だと思いますが……あまり良い渡し方ではないことは確かなので本家版でも対応しておきます。


#  非公開コメント   
  • TB-URL  http://www.cpa-lab.com/shougakusei/2008/spok/059/tb/