まだまだ知らない事は多い(--;)

仕事でPHPを触ってるのだけど、未だにデータベース関係は触りたくないので自分で書いたPHPは今のところ100%データベースを使用していない。

何気にホームページの更新用のCMSもどきもお客様のサーバに導入しているのだけど、それもテキストファイルベース(^^;)

 

そんな中、今の会社になる前からサーバを契約してくれているお客様から

 

『サイトで日付を入力するところがあるのですが、2015年までしか対応してないのでプログラム修正をして貰えませんか?また、出来れば自動的に年を追加削除するような仕組みにして貰えると助かります』

 

なんてメールが届いた。

誰が作ったか知らないけど、なんて不親切なって思いつつPHPならなんとかなるかと思ってみてみたら・・・なんてこった(--;)

すごく汚いコードで一瞬頭が痛くなってエディタを閉じてみたものの気を取り直して確認してみると、どうやらデータベースから年データを引っ張ってきてSELECTタグのオプションを生成しているようだった。

ただし、オプションタグの閉じは無し・・・あぁ、嫌だいやだ。

 

でもって、よくわからないままデータベースの中身を見てみると年号のテーブルに2000~2015って登録がされてるだけ。

こんなのデータベースから引っ張ってくる必要がどこにあるんだか???

とりあえず本番サイトでこれ以上いじるのは良くないと判断してKVM上にテストサイトを構築してコンテンツとデータベースデータをコピーして検証を続けた。

 

SELECTタグでPOSTしてるだけなんだからデータベースなんて使わないでシステム日付からオプションタグを生成するクラスを作成して表示するように修正。

という訳で今回もデータベースは弄らずwww

ただ・・・POSTで渡されたデータがどこにも$_POSTで受け取っている様子がない?

今まで問い合わせも無く普通に利用されている事から本番サイトでは問題なく動いてるはず、しかし何かがおかしい???

2日ほど悩んでふと気づいた。

そういや、PHP4の頃って$_POST['xxx']じゃなくて${'xxx'}で受け取れてたってどこかに書いてあったような気がして調べてみると

ビンゴ!

 

php.iniでregister_globalsがonになってると${'xxx'}の形式で受け取る事が出来る。

今のデフォルトはOFFなので、もちろんおすすめの設定ではない(--;)

さて、今回の修正依頼の内容には関係ないのだけど・・・個人的には修正がしたいなぁ。

 

 

ちなみに会社にあるPHP本はこれ1冊だけですw

PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)

PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)

 

 たいていの事はGoogleで検索したら出てくるので便利な世の中になったけど、まだまだ知らない事が多い。。。