本家のお世話-#78。(PHP5.5.4へアップデート)

投稿アップデート情報  追記(9/21)

 Sep-18 23:44:17UTC に PHP5.5.4 が出た。

 PHP 5.5.3 のバグ・フィックスだけらしい。 ( ChangeLog )

 といいながら, php.ini-production の中身は,下記のように,若干変わっていた。

 short_open_tag について
———————————————————————————————————————————————
PHP5.5.3 では —
; このディレクティブは, <? と ?> に挟まれた部分を PHP ソースとして扱うかどうかを判断します。
; ここ何年か,ショートタグ <? ?> の代わりに,フルタグ <?php ?> を使うことが推奨されてきました。
; XML などのように, PHP 以外でこのタグを使うものが増えたため,サーバ上で混乱が起き,間違った解釈が
; 起こることが多くなっています。長い間使われてきた機能であるため,ショートタグは今も以前のバージョンとの
; 互換性を保つために残されています。
; しかし,できる限りこの機能を使わないようお願いいたします。
———————————————————————————————————————————————
PHP5.5.4 では —
; このディレクティブは, <? と ?> に挟まれた部分を PHP ソースとして扱うかどうかを判断します。
; 以前のバージョンとの互換性を保つために,いまだにサポートが続いている機能ですが, XML との併用時の
; 不具合を回避するために,通常はこの機能を使わず,フルタグ <?php ?> を使用してください。
; (注)このディレクティブは shorthand タグ <?= とは関係ないことに注意してください。
;   <?= はここの設定にかかわりなく,使用できます。
———————————————————————————————————————————————

ということなんだが,面白い話を mail-archive.com で見つけた。新しいショートタグが生まれちゃったりして!!

 やっと,session.use_strict_mode についても出現
———————————————————————————————————————————————
PHP5.5.3 では —
 当然ながら,記述なし。
———————————————————————————————————————————————
PHP5.5.4 では —
; Strict session mode を使用するかどうかを設定します。
; On の場合は,未初期化 ID は受容しませんので,ブラウザが未初期化 ID を送ってきた場合に,セッション ID が
; 再生成されることはありません。
; Strict session mode はセッションアダプション脆弱性を使ったセッション固定化攻撃からアプリケーションを
; 保護します。互換性を考慮して,デフォルトでは Off になっていますが, On にされることを推奨いたします。
; https://wiki.php.net/rfc/strict_sessions
session.use_strict_mode = 0
———————————————————————————————————————————————

 まっ,とにかく,我が家用 (Windows7HP+SP1(x86)) として,VC11 x86 Thread Safe 版の php-5.5.4-Win32-VC11-x86.zip を落としアップデート。 VC11 がいるので,インストールがまだの場合は PHP のコンフィグの前に vcredist_x__.exe を入れておく必要がある。

 php5apache2_4.dll はオフィシャルバイナリに含まれているので,新旧のファイルを入れ替えて php.ini を放り込み, Apache をrestartするだけ。

 新規に導入する方は,必要なら「Windows7上にWamp系WebServerを建てる-#2。」を参考にしてください。

追記(9/21):
 徳丸さんが,「PHP5.5.4にてstrict sessionsのバグ(bug65475)が修正されたがテストがないことに気づいた」という記事を書いていた。

 別件。上記の「(注)このディレクティブは shorthand タグ <?= とは関係ないことに注意してください。<?= はここの設定にかかわりなく,使用できます。」について確認してみた。
———————————————
  <? echo “1.使えますか?”; ?>
  <br>
  <?php echo “2.使えますか?”; ?>
  <br>
  <?= “3.使えますか?”; ?>
———————————————
というスクリプトを走らせてみたら,
———————————————

  2.使えますか?
  3.使えますか?
———————————————
になった。自鯖の場合, short_open_tag は off だが,確かに,ショートハンドも使えている。 PHP のマニュアルによれば,

注意:

PHP 5.4.0 より前のバージョンでは、 このディレクティブは、<? echoと同じ形式の ショートカット<?=も影響を受けます。 このショートカットを使用するには、 short_open_tagをonとする 必要があります。 PHP 5.4.0 以降では、<?= は常に有効となります。

ということらしい。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください