CGI版とモジュール版を変更するとsessionでエラー

  • 2011/10/28(金) 02:12:42

借りているサーバー、CORESERVERは未だにPHP5.2。
今月になって、ようやくCGI版ながら5.3.8を入れてくれたので、改装版のサイトをとりあえずCGI版で動かしてテストしている。
ほとんど問題ないが、session_start()で必ずエラーを吐くようになった。

Permission deniedだったから、なぜかセッションファイルに書き込みができなくなったのことは分かった。
で調べていたら、モジュール版とCGI版とでは動かすユーザーが違うから、生成されるセッションファイルのオーナーも違う。
ということで、モジュール版とCGI版を変更したときに、変更前にサイトを見ていたブラウザではエラーが出てしまうのは当然だ。
結局はCookieを使うわけだから、他のブラウザならエラーはないし、クッキーを消せばエラーも消える。

モジュール版がいつ入るかはわからないけど、テスト環境でなら問題はない。
ただ、本番に移行するときにモジュール板が入ってくれてるかどうかだな。

・・・いや、モジュール版が入るまでにサイトを改装できるのか、といったほうが適切か。

WindowsでcURLを使うには

  • 2010/06/08(火) 11:36:14

備忘録。
php curl windows - Google 検索で調べてすぐ判明。

・php.iniで「extension=php_curl.dll」のコメントアウトを外す

・パスの通ったフォルダ(Windowssystem32など)にlibeay32.dll、ssleay32.dllを置く

libeay32.dll、ssleay32.dllのファイルは以下から入手。
http://www.stunnel.org/download/binaries.html
stunnelをインストールすると、プログラムフォルダに二つのdllファイルが入ってる。
インストールしなくても配布されているものがあるが、新しいそうだからこっちにしてみた。
おかげでnpopでgmailが読めるようになった。

Smarty3ではまりかけた

  • 2010/01/29(金) 09:50:21

サーバー移行ついでにSmartyも新しくしようと、まだベータの3を入れてみた。
で試したらデータ検索の画面だけが表示しない。
書き方に問題があるなら、他のページでもエラーが出てもおかしくないのに、検索のページだけ。

色々調べて何とか原因が判明。

assignする変数名に null を使っていたためエラーになっていたのだ。
具体的には、

{if $null_hoge = 0}

と書いていたらNG。
null以外の文字列で変数名を付けたら解決。

バージョンが上がって、変数名を変数で書けるようになったことが影響してる気がする。
$var_$n と書いて$n=1なら、$var_1 の変数として扱われるようになったということだけど、名前のnullを値として見ちゃうんだろうな。
null以外でもありそうだ、こりゃ。

ん〜新しく作る分にはいいけど、今動いてるサイトに適用するのは怖い。
移行後も現行バージョンで表示するようにして、開発にはSmarty3を使うことにしよう。

phpPgMyadminで改行があるデータは要注意

  • 2007/04/12(木) 18:34:31

TRPGツールのデータをphpPgAdminで変更保存したら、クラスなど全ての値が読み出されなくなることがあった。
どうやら改行が含まれているデータがおかしくなる。
serializeしたデータだから、改行のバイト数がPHPで保存した場合とphpPgAdminで保存した場合とで異なってくるのが原因、ではないかと推測。
#機会があれば確認しよう。

これもUTF-8だからこその問題なのかなあ。
うかつにphpPgAdminで保存しないよう気をつけよう。
ちょっとしたデータ変更もSQL書くか専用のページ作るしかないのか・・・めんどくさ〜

続きを読む