【PHP】PHP5.3からPHP7.1へアップデートで気をつけること

2020.09.28

【PHP】PHP5.3からPHP7.1へアップデートで気をつけること

結論から言うと、
基本的には、

1 省略した記述を直す。

2 名称や役割の変わった関数などを新しいものに直す。

という2点のみ。

そもそも、セキュリティ強化や、レンタルサーバの移設など、
様々な理由でPHPのアップデートが必要な場合がでてくる。
Webの仕事はいつも突発的なことが多い。

そういった場合は、調べながらひとつひとつ原因を潰していくしかない。

まず、私の作ったプログラムを7.1で実行すると出たエラーは

(1)Notice:系エラー

ーーーーーーーーーーーーーーーーーーーーーーー
Notice: Undefined index: ●●●● in …
ーーーーーーーーーーーーーーーーーーーーーーー
未定義の変数や配列を使用しようとしていると出るアラート。
最初に定義しておくか、もしくはアラート自体を非表示にする。

最初に定義しておくのはJavascriptの
ーーーーーーーーーーーーーーーーーーーーーーー
var ●●●=null;
ーーーーーーーーーーーーーーーーーーーーーーー
などと同じように
ーーーーーーーーーーーーーーーーーーーーーーー
$●●● = null;
ーーーーーーーーーーーーーーーーーーーーーーー
と最初に使う変数を定義しておく。
当たり前のことだが、古いバージョンではそれが必要なかった。

次のやり方はアラート自体を非表示にする方法。
PHPの最初の行に
ーーーーーーーーーーーーーーーーーーーーーーー
error_reporting(E_ALL & ~ E_NOTICE);
ーーーーーーーーーーーーーーーーーーーーーーー
といれるだけでNotice:系のアラートは非表示にできる。
ほかの変数を入れることで、さまざまなアラートを非表示にできる。
本来はアラートがでないように制作するのだが、
古いバージョンからのアップデートの場合は、
あまりプログラムをいじると違う影響がでるのが怖いので、
プログラムのボリュームによって、直すか、アラートの非表示かを選択する必要がある。

(2)日時系(date関数)のシングルクォーテーション抜け

例えば年を変数に入れる時、
ーーーーーーーーーーーーーーーーーーーーーーー
$year=date(Y);
ーーーーーーーーーーーーーーーーーーーーーーー
としていたところを、
ーーーーーーーーーーーーーーーーーーーーーーー
$year=date(‘Y’);
ーーーーーーーーーーーーーーーーーーーーーーー
と直す。
これも古いバージョンでは、(Y)で動いていた。
よく考えると逆になぜ動いていたのかと思うが。。。
古いバージョンでは結構省略が可能だったということが判ってくる。
作り手の裾野を広げるためだったのか。
それがセキュリティの甘さに繋がるのは、よくあるパターン。
手続きが面倒なほどセキュリティは上がる。

(3)mysql関数の呼び出し方が違う(新:mysqli関数)

ーーーーーーーーーーーーーーーーーーーーーーー
$link = mysqli_connect(‘【ホスト名】’, ‘【ユーザー名】’, ‘【パスワード】’);
ーーーーーーーーーーーーーーーーーーーーーーー
と定義した後、
ーーーーーーーーーーーーーーーーーーーーーーー
$db_selected = mysqli_select_db( $link,’【DB名】’);
mysqli_set_charset($link,’utf8′);
ーーーーーーーーーーーーーーーーーーーーーーー
と、$linkを指定してmysqli関数を動かす。
ここも省略できていたものをちゃんと指定するというのが修正点。

検索クエリー実行時も、mysql関数のときは
ーーーーーーーーーーーーーーーーーーーーーーー
mysqli_query(“SELECT * FROM 【DB名】 WHERE 【セル名】 = ‘該当セル名’;
ーーーーーーーーーーーーーーーーーーーーーーー
でいけたものを、

mysqli関数では、
ーーーーーーーーーーーーーーーーーーーーーーー
mysqli_query($link,”SELECT * FROM 【DB名】 WHERE 【セル名】 = ‘該当セル名’;
ーーーーーーーーーーーーーーーーーーーーーーー
と$linkに入れたmysqli_connect()部分を設定しなければならない。

結局、

2 名称や役割の変わった関数などを新しいものに直す。

は名称が変わっただけで、ほとんど同じ機能を持っているので、

1 省略した記述を直す。

というのが、今回のアップデートで一番大きな部分だった。

このエントリーをはてなブックマークに追加 シェア ツイート


人気記事





「仕事」カテゴリの他の記事




« »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメント( まだありません )

コメント募集中