▼ 2007/12/07(金) ドコモ端末でログインできない(一応解決)adiary1.44
なぜか、ドコモ(Docomo)の701シリーズの携帯電話端末でログインできない事象が。。。
たぶんクッキー(Cookie)が使えないことが問題か?(でも他の端末もクッキー利用不可だよね)
これまで多くの人が使用しているのだから、おそらくこちらの設定かサーバーの問題か。。。。
たぶん、IDとセッションIDの引き回しがうまくいっていないのが原因だと思っていたら。。。
しかし、ソースコードに問題があるとは思えない。。。。。
でも、引き渡し直前の$1,$2には、IDとセッションIDが入っているのに、session_auth側では、その値が入っていない。。。。
しかも、PCでのログインはできているわけだから、session_auth側の問題でなく、呼び出す側の問題と思って試行錯誤。
すると、diary.pmから呼び出す直前に
ネットで調べたが、そんな事象はどこにも書いていないし、さくらインターネットのPerlの設定のせいなのかなんなのか。
ちなみに
もうすぐ他の奨学生ブログがオープンなので、まあまあなんとか応急処置ということで。
perlを知らない日曜プログラマには、ちょっと重荷の事象でした。
このツールにお世話になりました。
i-modeシミュレーター
たぶんクッキー(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シミュレーター
- TB-URL http://www.cpa-lab.com/shougakusei/2008/spok/059/tb/
# nabe 2007年12月08日(土) 深夜2時30分
いつもいつもご報告ありがとうございます。こちらで試したところ再現しませんでしたが、症状からして Perl の Version による差だと思いますが……あまり良い渡し方ではないことは確かなので本家版でも対応しておきます。