COOKIEがちゃんと保存されない?

  • 2007/03/30(金) 11:07:04

COOKIEの仕組みを正しく理解している自信は無いのでこういう表現があっているかも自信は無いが、ローカルの環境でCOOKIEをちゃんと保存してくれず、セッションなどが全く機能しない状態になってしまってる。

最初はソースを見直してたが、レンタル鯖に上げたらさくっとセッションが動いて環境が原因であることが分かったが、何が悪いのかがさっぱり。
数ヶ月前にはセッション使ったテストプログラム動いてたから、何かがきっかけなんだよなぁ。

PHPもApacheも入れ直したて設定をいろいろいじくって、バージョンもいろいろ組み合わせたがもうお手上げ。

やむをえないのとちょうどいい機会と言うことで、鯖にテスト用のスペースを確保した。
それはそれでいろいろいじりやすくなったけど、ローカルでテストできないのは面倒で仕方ない。

ローカルサーバのCOOKIEだけ拒否してる、とかそんなことだったりして。

データ保存追加とキャラシート風出力

  • 2007/03/28(水) 19:15:30

あんまり需要はなさそうだけど、勉強もかねてビーストバインドNTとエンゼルギアでデータ保存できるようにした。
また、アリアンロッドでキャラシート風出力機能を追加。
さらに、テキスト出力とキャラシート出力を一覧画面からワンクリックでできるようにした。

難しいと思ってたのがすぐ出来たり、さくっと片付くはずのものに1日かかったりと、自分の技量の無さを痛感する今日この頃。

アリアンロッドのツール いろいろ調整中

  • 2007/03/23(金) 22:34:07

戦闘・装備欄のデータもテキスト出力に対応させたけど、まだいろいろ調整中。

あまりにごちゃごちゃ増えてきたので、デフォルトではスキル欄以外はたたんだ状態にしてみた。
項目の多さで引かれちゃうのもばかばかしいし。
表示非表示の状態も保存できるので、その辺のわずらわしさは少しは解消できてる、といいなあ。

位置もまだまだ試行錯誤。キャラクターシートの配置を参考に、スキル欄を下に持っていったけど、前みたいに能力値のすぐ下のほうがいいのかも。
これの配置を自由にいじれればなおいいけど、そこまでの腕はまだない。

あとは、アイテムの追加、だな。


・3/26追記
上級、ファーストクエスト、リインフォースの追加アイテム、マジックアイテムを装備欄に追加終了。
アイテムガイド買ったら追加、出来る量なのかなぁ・・・

phpPgAdmin pkeyないとレコード編集できない

  • 2007/03/23(金) 14:17:40

phpPgAdminでレコード編集できる(編集ボタンが表示される)テーブルと出来ないテーブルがあってなんでかな〜と思ってたら、編集できないテーブルにはプライマリキーが設定してなかった。

これで大きなストレスがなくなった!

アリアンロッドツールに装備欄を追加

  • 2007/03/22(木) 20:38:03

またまた勢いで、アリアンロッドPC作成補助ツールに装備欄を追加してみました。
かなり項目が増えてごちゃごちゃしてきた・・・レイアウトもセンスいるな。

とりあえずバージョンなので、装備データの保存は出来るけど読み出しが出来ないとか、左右の攻撃力を分けて計算してないとか、おかしなところあるけど、出来るだけ早く手をつけるので、しばしお待ちを。
他にも変なところあったらコメントで教えてもらえると助かるっす。

追記 04:30
保存した装備欄のデータも読み出せるようにしました。
ただ、中途半端な状態で保存されているかもしれません。
その時はクラスやアイテムを適当に動かして計算しなおしてみれば直るはず。

アリアンと違うツールのファイルもUpしちゃったので、もしかしたら別のツールでおかしくなってるかも・・・

phpPgAdmin4.1のバグ

  • 2007/03/22(木) 04:22:15

phpPgAdmin4.1を入れたが、ログイン後にデータベース一覧が出てこない。
missing FROM-clause entry for table "pu"
とかエラーが出やがる。いろいろ調べたらclasses/database/Postgres81.phpの86行目

$clause = " AND pu.usename='{$username}'";

$clause = " AND pr.rolname='{$username}'";

に変えたらいけた。80や82も同じtypoしてるようだ。
このエラーは多分、 $conf['owned_only'] = true にしてる時だけだと思う。

で先に進めたが、Notice: Undefined index:〜 がでまくる。
これだけでもMySqlにしてやろうかと思いたくなるよ、ほんと。

地図変更はGTileLayerっぽい

  • 2007/03/21(水) 01:55:58

地図を張り替えてみたいと思ってmaplibを試してみたが、APIの大半の機能を使えなさそうで(出来るのかもしれないが)、自分でいじってもいいからもっといい手はないかと検索してたら、やっとヒット。

http://blog.fkoji.com/2006/11040255.html
GTileLayer google maps api で検索

GTileLayerを使えば、地図上に画像を貼り付けることができるらしい。
リファレンスにあったっけ、と思ったら、参考にしてた和訳サイトが歯抜けまくりであることも判明。

英語でもちゃんと原本は見なきゃいかんね。

続きを読む

アルシャードff・ガイアも保存可能に

  • 2007/03/16(金) 09:31:49

勢いでやってみました。
アリアンロッドで基本の処理は出来てるから数時間でできるかな、と思ったら1日がかりになってしまった・・・とほほ。

しかも機能追加が終わってサーバにアップして動作確認しようとしたら、なんとデータが全て消えてる!
ミスったか?とあわててデータベース見たけど、特におかしいところはない。つまりは、誰かが消したわけだ。ログを見ると同じIPが連続で削除してて、いたずらかもしれんなぁ。
と言うわけで、対策を思いつくまでは削除機能外します。
#一定期間触りも見られもしてないデータを削除候補にするとかかな

どうしても消したい!と言うときはコメントへどうぞ。

他にも登録しようとしてエラーが出たりとかあったけど、気がついた分は修正してあるので、うまく行かなかった人がいたら試してみてね。
う〜まだまだまだまだ何かありそうだ。

そろそろ、新しいことやりたい。

不具合の原因はまた文字コード

  • 2007/03/15(木) 21:27:21

データベースを見るとちゃんと保存されているのに正しく表示できない(値が全部空欄になってる)という不具合が起きているが、きっかけは文字コードの変更。
また文字コードかよ!と思ったが、根本的な原因を知って自分の無知を思い知った。

データ保存時にPOSTをserializeしてデータベースに格納して、表示するときにserializeしている。
で、見えないデータは文字コード変更前(EUC-JP)のときに保存・更新されたもので、変更後(UTF-8)に保存したものは問題ない。

以下のページにずばり、この問題の答えと対応方法があった。
http://d.hatena.ne.jp/s-yano/20060706

EUC-JPでは日本語2バイトだが、UTF-8では3バイトでバイト数が変わってしまい、serializeは文字数ではなくバイト数で情報を持つから、UTF-8のスクリプトではunserializeできない状態になってたというわけ。

一つ一つsを直すのは面倒なので、EUC-JPでvar_export()→UTF-8でserialize、の方法でやることにする。
また一つ勉強になったな、うん。

07/03/15 22:00 不具合解消したはず。

データ保存関連の変更しました

  • 2007/03/15(木) 06:03:36

データ保存機能で、それぞれのデータに数字(ID)を割り振って、そのIDでアクセスできるように変更しました。32桁じゃぁメモも大変だしね。

あわせて、サイト全体に及ぶ変更やTRPGツールもかなりの修正を加えたけど、全部裏側の話なので、見た目は変わってないはず。
他の主な変更点は、
・全ページをEUC-JPからUTF-8に
・ツールの画面を開くとき、全てのデータを読み込むまで画面を表示しないように変更(読み込み前に変更するとエラーになることがあったのたので)
・保存可能ツールにメモ欄追加
・javascriptの軽量化(体感は変わんないと思う)
・その他プログラムをかなりいじった

バグが混じってたらごめんなさい。
その時は、やさしくコメントで教えてくださいな。