忍者ブログ
研究室生活のメモ・・・だった過去の遺産。移転先→http://negimochix2.blogspot.com/
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ちょっと前の話になるんだけど、
もう忘れてしまいそうなのでメモっておく。

この間、研究室の業績サーバを移行する仕事をしていた。
以前より構築済みの環境は、

言語:php4.1.x
データベース:PostgreSQL7.1.x

まあ、単にサーバのPCさんの調子が微妙だったので、この際移行してしまおうということだった。
研究室だけでの閲覧に限られていたので、別にセキュリティを強固にするわけでもない。
新しく作った環境は、

言語:php5.2.x
データベース:PostgresSQL8.3.x
(ちょっと、細かいバージョンの数字は忘れた)

PHP4とPHP5はかなり内容に違いがあり、移行時に問題があることは知っていた。
でも、そのほとんどはクラスに関係したもだ。
すでに構築済みのphpはクラスを使っていない単純な構成だったので、移行時の障害にはならないと思っていた。
データベースは下位互換あるらしいし。


でも、実際やってみると、うまくいかなかったので、問題のあるソースをだどって行くと・・・

postしてるのに、$_POSTの記述がどこにもない

ことに気づく。
どうやら、前回のサーバでは、php.iniの設定を
register_globals = on
としていたらしい。

register_globalsがonだと、
print $_POST["hoge"];
と書くべきところを、
print $hoge;
と簡略化できる。
register_globalsは、4.1まではデフォルトでon、4.2以降はoffになっている。
つまり、今回のサーバ移行で起きた問題は、phpソースがregister_globalsをonにしていることを前提としているのに、register_globalsをoffに設定していたのが原因らしい。

問題解決。
でも、そもそも、register_globalsがデフォでoffになったのは、セキュリティ的に危険であるため。
今後、PHP6ではregister_globalsが廃止され、省略表記は不可になるらしい。
>>Register globals - GeeklogJpWiki

じゃあ、今のphpもoffで使える仕様に変更しないとまずいかもね?
また、移行の話がでたとき困るし・・・

ま、いいかwそのときの後輩がなんとかしてくれるさ。きっと。

PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
Infomation
くさもち 【中の人】
・くさもち
・ボカロ廃大学院生
・βからのニコ厨
・もちろん非リア充
・ミクZ4 第二期個人スポンサー

【メール】
・negimochi.tabetai(゚Д゚)gmail.com
(゚Д゚)→@

【その他やってるもの】
Twitter

・これは痛いピアプロ
・過去の遺産smart.fm

【作ったもの】
・製作に参加したDTX GDPメインサイト
で,実際に作ったIRページ
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Heartsnative
『Heartsnative/MOSAIC.WAV×鶴田加茂 feat.初音ミク』応援中!
VOCALOID Ranking Watcher
新曲は常にチェックすべし。
真・フルみっくすプレイヤー
おすすめ記事
jubeat ripples
今更やってみる