php4.2?->php5.3で起こったエラーとかよ。

日曜に直してほぼ完璧だなって思ったら
月曜にサーバー再起動したら、仕様がまるっきり変わった(変えた?)ようで
一言であらわすと、「フルボッコ」でした。
PEAR::DBとかなぞの消滅とかマジでありえんですよ。
結局PEAR::DBはアンインストール→インストールで終了ですがw

やっぱメジャーアップデートはry
前回のpostgres同様ハマる要素を適当に書いておく。

phpの宣言

php4では「<?」で始まり、「?>」で終了でokだった(半角です)
php5ではそれが認識しなくて「<?php」でないとうまく動いてくれなかった。
ちなみに前の状態のままで放置するとどうなるかというと
ソースがそのままベタ打ちされましたぜ。
これってサーバー管理者が間違ってupdateしたら下手したら丸漏れっていわねえか・・・
タグでxmlの定義が「<?XML」で始まって「?>」で終わるので
なんとなくしょうがないような気がしないわけでもない。
PHP利用しているとPHP内で
echo "<?XML略?>";とか書かないとphp開始終了宣言になっちまうしな。

Deprecatedエラー
ereg、ereg_replaceで発生。

Deprecatedエラーは使用を推奨しない警告のような漢字らしい。
平たく言うと別なの使えばOK。エラー出ても使えるってことらしいが。
それぞれをpreg_match,preg_replaceに書き換えたら直った
表示されるエラーレベル下げるように設定しても消えるといえば消えるはず?

Deprecatedエラー
set_magic_quotes_runtime()とかなんとかそんな漢字のやつ。

phppgadmin(4.2.1)で発生。
とりあえずgetした値を見た限りでは「0」で、phppgadminでは
getして一度どっかに保留しておいてその間、値を0に書き換えてなんか処理
終わったら前の値を戻す(結局0→0→0)みたいなことをしてたので、その行を無視しました。

それを直してもphppgadminはエラー出続けてログイン画面すら出なかったので
phppgadmin\librariesフォルダにあるlib.inc.phpの上のほうにある
エラー表示レベルの設定の部分error_reporting(E_ALL)を適当に
error_reporting(E_CORE_ERROR)に書き換えたら使えるようになりましたとさ。
エラーレベルの警告表示を下げたことで、最初のDeprecatedエラーもでなくなる可能性もあるわけですが、面倒だったので再度set(ryは書いたりはしませんよ。
自分が作ったものじゃない限り使える限りはそのまま使うだけでいいかと。
本当に使えなくなったら、そのころにはアップデートされるでそ?

Warning: mb_convert_encoding()
mb_convert_encoding()でautoを使ってると発生しやすいっぽい。
autoを使わないという手もあるが、php.iniでmbstring.language = Japanese
を管理者に指定してもらって終了。

というか、おそらくphp5に関係なくphp.iniの設定ミスと判断。

あとはファイル指定しないでアドレス入れたときにindex.php読んでくれないとかありますが
これもphp.ini設定ミスっぽいな。


とりあえずよく出そうなのはDeprecatedエラーっぽいかな?
eregでハマるくらいだし、宣言もきちんと書いてない人は
php4→5.3では手直し箇所は結構増えるかと。

エラーレベル下げて表示しないって作戦もあるんですがね。
(先延ばししても意味がないが)



認証、名前入れが面倒だという方はこちらをどうぞ

トラックバックURL

このエントリーのトラックバックURL:
http://www.luminousqueen.com/mt/mt-tb.cgi/794

コメントする



スパム対策の為にCAPTCHA認証を導入しています。

認証について細かいことはこちらをみてください

カテゴリ

サイト内検索


Syndicate this site (XML)
小粋空間
QLOOKアクセス解析