OpenPNE: 2009年10月アーカイブ

OpenPNE で、新規会員の登録完了時、c_member_id に 0 がセットされてしまう件
別の場所でテストしてみたら、ついにうちのテスト環境でもエラーが出てしまった。
(出たり出なかったりという状況)

というわけで、結局、今の今まで調査をさせられるハメになったが、鬼のように PHP スクリプト内に DEBUG 用の情報をファイルに吐き出す処理を入れて、処理の流れをトレースしてみたら・・・

何か、MODE=register な処理が時々2回走ってるんですけど・・・
で、2回走った時は高い確率でエラーになる。(ならない時もある)

結局、InternetExplorer のバグなんだよなあ。
これ。
 ↓
input type=image で フォームが2回送信される
http://support.microsoft.com/kb/822276/ja

バグだとわかっているのに何もしない Microsoft って・・・。おかげで、俺の貴重な時間が失われてしまったじゃないか!(怒)

最初のテストで、うちでは InternetExplorer 6 でも 100% の確率で正常に処理出来ていたのは、どうもうちの回線が遅かった(INS64 だ!)せいのようじゃね。
2回目の送信の結果(DB への二重登録でエラーになり、その時、c_member_id に 0 をセットした URL にリダイレクトされる)が来る前に、1回目の結果が返ってくるので問題なかったんだろう。回線が遅いから、2回目のデータがなかなかサーバに届かないってことだろう。

今日テストをしたのは NTT の光サービスにぶら下がっている PC だが、この場合も、コメントに長文を入れるなど、送信データをでかくしてやると、高確率で正常終了していたので、この読みは当たっていると思うがな。

つーことで、送信ボタンを画像で作って、

<input type="image" src="img/button.jpg" name="submit" onclick="submit();" alt="この内容で登録" />

なんてしてたんだけど、onclick="submit();" を削除したら、IE6, 7 でも正常に登録出来るようになった。

ほんまに、Microsoft には酷い目に遭わされてばかりや・・・とほほ。

OpenPNE の不思議な現象。

新規会員登録をすると、最後に登録完了画面が表示されるんだけど、「エラーが発生しました。 c_member_idは1以上の数値で入力してください」というエラーが出てしまうことがある・・・らしい。(うちの環境では発現しない)

登録処理の後、Location ヘッダで完了画面に飛ばしていると思うのだが、例えば、

http://sns.exsample.co.jp/?m=pc&a=page_o_regist_end&c_member_id=30

に飛ばすはずが、

http://sns.exsample.co.jp/?m=pc&a=page_o_regist_end&c_member_id=0

のように、c_member_id に正しい ID ではなく 0 がセットされているのが原因のようだ。

・・・が、どういうときに 0 がセットされるのか全然わからない。

最初、お客さんから「InternetExplorer7 で登録処理をするとエラーが発生する」と言われたのだが、当社のテスト環境は、

・InternetExplorer 8 on Vista Business SP2
・Forefox 3.5.3 on Vista Business SP2
・InternetExplorer 6 on XP Professional SP3
・safari 3.1.1 on Mac OS X 10.5.3

しか無いので(ああ、VMware 上の CentOS 5 や 2000 SP4 環境もあるけど、今回はそこまではねえ・・・「メジャー」な環境での動作テストなので)、そのいずれでもエラーは発生せず。
InternetExplorer 6 on XP Professional SP3 な環境については、接続回線も(当然、プロバイダーやルータ等の機器も)変えてやってみたが問題無し。

「この状況では、そちらの環境に問題があるのでしょう・・・としか言えないので、もう少しエラーが発生するパターンを見つけてほしい」とお客さんには依頼しているのだが・・・

ただ、経路で(ルータやファイアウォール等で)c_member_id=0 に変換されているとは考えづらいので、やはり何らかのケースでは、OpenPNE が 0 をセットしてしまうのだろうなあ・・・

ま、今のところ、ある特定のお客さんの環境でしか発生していないので、これ以上対応する気はないのだが、調査だなんだで二日無駄にしたよ。ただでさえユーザ要件が混乱してオーバーワーク気味の案件なのに・・・とほほ。

このアーカイブについて

このページには、2009年10月以降に書かれたブログ記事のうちOpenPNEカテゴリに属しているものが含まれています。

前のアーカイブはOpenPNE: 2009年9月です。

次のアーカイブはOpenPNE: 2009年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら