「マジック・サポート」更新
2011年1月12日 ゲーム■「マジック・ザ・ギャザリング カード検索データベース」:障害の修正
サブタイプ/アーティストの検索条件の指定に関して2点障害があったのを直しました。
・サブタイプ/アーティストのパネルの「リストから選択」で開くセレクタを用いて何らかの検索条件(A)を指定して検索した結果を表示している画面で、「リストから選択」を押すことなくページャーを操作したり検索を実行したりした場合、画面上では設定されているはずの検索条件(A)が処理に反映されないという障害があったのですが、それを修正しました。
例えば、「リストから選択」で「アドバイザー」を選んで検索を行うと、29種類のカードが見つかり、そのうちの20件が表示されます。
が、その状態でページャーの「2」を押して2ページ目の9件を表示しようとすると、「アドバイザー」が選択されているにも関わらず、全カード(現在は11578種類あります)が見つかってしまっていました。
・サブタイプ/アーティストのパネルの「自由記述」欄に「\"」を含む文字列を記入すると構文エラーが検出される障害を修正しました。
他のサービスについても、これに類する障害(つまり、何かを入力するところに「"」や「’」や「\」を入力した場合におかしな挙動になる)がいくつかありまして、それらもまとめて直しました。
例えば「スイス・ラウンド成績管理支援ツール」で「’」を指定して検索したらエラーになったりとか、「マジック・オンライン ユーザ主催イベント運営マニュアル」でフォーマットの説明欄等に「"」を入力してコピペ原稿を生成すると、入力したはずの文章が「"」のところでチョン切れてたりとか、そんなのがいっぱいありまして。
どうもすみませんなー。
何故今ごろそんなバグが見つかっているのかというと、実はいよいよ総合ルール・ビューワを実装しようと思い立ち、そのための準備作業をしている中で見つかったのです。
総合ルール・ビューワでは、総合ルールをデータベースに取り込む必要がありますが、これを全部PHPプログラムで書いてサーバ側で処理しようと思うと、サーバの許容時間 (クライアントからのリクエストは8分以内に終らせないといけません) 内に終るかどうか不安な部分があります。
まあ、普通はだいじょぶでしょうけど、atpagesは共用サーバですので、利用が集中することもありますから。
それで、手元で下処理したファイルをサーバにアップロードする方式にしようと思っているんですが、ファイルをアップロードするためには、formのenctypeをmultipart/form-dataにしないといけないんです。
それはそうするしかないし、そうすればいいんですけど、multipart/form-dataにすると、php://inputや$HTTP_RAW_POST_DATAが機能しなくなってしまうので、生のPOSTデータにアクセスできなくなっちゃうんです。
PHPではPOSTデータは$_POSTに入ってる、と思いがちなんですが、実はこれはPHPが生のPOSTデータをPHP流に加工したデータです。
例えば、「"」は「\"」に変換されてたり、「\」は「\\」に変換されてたり。
(他にも、同じキーのデータが複数POSTされた場合に最後の一つしかアクセスできないとか。)
ごく普通の用途では、この加工はありがたいことも多いんでしょうけれど。
「マジック・サポート」の場合、例えばカード検索データベースなどでは、「\」や「"」が普通に入力されるので、この種の加工はあんまりうれしくないんです。
そこでこれまでは、php://inputから生のPOSTデータを直接読み込むようにしていたんですが。
上述の通りで、総合ルール・ビューワではその方法は使えないので、別の方法を使わなければなりません。
別の方法って言っても、生のデータにはアクセスできないんですから、$_POSTを全部読み込んで、PHPがわざわざ加工したのを手間を掛けて元に戻すというプログラムを書くより仕方がありません。
そのプログラムを書いてデバッグしていたら、そもそも「\」や「"」を扱う部分にいくつかバグがあるのが見つかった、というわけなのでした。
で、今そういうアナウンスをしているということは、そのphp://inputを使わない方法に切り替える作業が終ったということでして、いよいよこれから総合ルール・ビューワの実装作業に入ります。
これはかなり時間がかかるので、当分ここで更新報告をする機会もなくなるものと思われます。
No news is good news.
果報は寝て待ってて欲しいんですなー。
マジック・サポート http://www4.atpages.jp/kakoiku/index.php?lang=Japanese
サブタイプ/アーティストの検索条件の指定に関して2点障害があったのを直しました。
・サブタイプ/アーティストのパネルの「リストから選択」で開くセレクタを用いて何らかの検索条件(A)を指定して検索した結果を表示している画面で、「リストから選択」を押すことなくページャーを操作したり検索を実行したりした場合、画面上では設定されているはずの検索条件(A)が処理に反映されないという障害があったのですが、それを修正しました。
例えば、「リストから選択」で「アドバイザー」を選んで検索を行うと、29種類のカードが見つかり、そのうちの20件が表示されます。
が、その状態でページャーの「2」を押して2ページ目の9件を表示しようとすると、「アドバイザー」が選択されているにも関わらず、全カード(現在は11578種類あります)が見つかってしまっていました。
・サブタイプ/アーティストのパネルの「自由記述」欄に「\"」を含む文字列を記入すると構文エラーが検出される障害を修正しました。
他のサービスについても、これに類する障害(つまり、何かを入力するところに「"」や「’」や「\」を入力した場合におかしな挙動になる)がいくつかありまして、それらもまとめて直しました。
例えば「スイス・ラウンド成績管理支援ツール」で「’」を指定して検索したらエラーになったりとか、「マジック・オンライン ユーザ主催イベント運営マニュアル」でフォーマットの説明欄等に「"」を入力してコピペ原稿を生成すると、入力したはずの文章が「"」のところでチョン切れてたりとか、そんなのがいっぱいありまして。
どうもすみませんなー。
何故今ごろそんなバグが見つかっているのかというと、実はいよいよ総合ルール・ビューワを実装しようと思い立ち、そのための準備作業をしている中で見つかったのです。
総合ルール・ビューワでは、総合ルールをデータベースに取り込む必要がありますが、これを全部PHPプログラムで書いてサーバ側で処理しようと思うと、サーバの許容時間 (クライアントからのリクエストは8分以内に終らせないといけません) 内に終るかどうか不安な部分があります。
まあ、普通はだいじょぶでしょうけど、atpagesは共用サーバですので、利用が集中することもありますから。
それで、手元で下処理したファイルをサーバにアップロードする方式にしようと思っているんですが、ファイルをアップロードするためには、formのenctypeをmultipart/form-dataにしないといけないんです。
それはそうするしかないし、そうすればいいんですけど、multipart/form-dataにすると、php://inputや$HTTP_RAW_POST_DATAが機能しなくなってしまうので、生のPOSTデータにアクセスできなくなっちゃうんです。
PHPではPOSTデータは$_POSTに入ってる、と思いがちなんですが、実はこれはPHPが生のPOSTデータをPHP流に加工したデータです。
例えば、「"」は「\"」に変換されてたり、「\」は「\\」に変換されてたり。
(他にも、同じキーのデータが複数POSTされた場合に最後の一つしかアクセスできないとか。)
ごく普通の用途では、この加工はありがたいことも多いんでしょうけれど。
「マジック・サポート」の場合、例えばカード検索データベースなどでは、「\」や「"」が普通に入力されるので、この種の加工はあんまりうれしくないんです。
そこでこれまでは、php://inputから生のPOSTデータを直接読み込むようにしていたんですが。
上述の通りで、総合ルール・ビューワではその方法は使えないので、別の方法を使わなければなりません。
別の方法って言っても、生のデータにはアクセスできないんですから、$_POSTを全部読み込んで、PHPがわざわざ加工したのを手間を掛けて元に戻すというプログラムを書くより仕方がありません。
そのプログラムを書いてデバッグしていたら、そもそも「\」や「"」を扱う部分にいくつかバグがあるのが見つかった、というわけなのでした。
で、今そういうアナウンスをしているということは、そのphp://inputを使わない方法に切り替える作業が終ったということでして、いよいよこれから総合ルール・ビューワの実装作業に入ります。
これはかなり時間がかかるので、当分ここで更新報告をする機会もなくなるものと思われます。
No news is good news.
果報は寝て待ってて欲しいんですなー。
マジック・サポート http://www4.atpages.jp/kakoiku/index.php?lang=Japanese
コメント