ホームページ修正ホームページ制作・Web制作

phpバージョンアップの影響でphpメールフォームが動作停止した時の対処

phpバージョンアップの影響でphpメールフォームが動作停止した時の対処

phpバージョンアップの影響でphpメールフォームが動作停止した時の対処について。ホームページ修正の中で意外と多いのがphpメールフォームの修正です。phpを利用したメールフォームを使用している場合、サーバーのphpバージョンアップの影響で動作を停止したり不具合が起こったりします。メールフォームは、仕様がバラバラであり修正しようとすると、大掛かりな調査、作業が必要とします。修正対応できずに新規メールフォームを設置させていただくという代替案を出させていただくことがよくあります。

先日まで普通に使用できていた「phpで作成されたお問い合わせフォーム(メールフォーム)」が急に使えなくなったという場合、たいていサーバー会社によるphpバージョンの変更が原因となっています。「メールフォームに組み込まれた関数が、バージョンアップされたphpにおいては使用できない」という場合の取り扱いにおいて、「500エラーを返す」というケースです。

php7以降は非推奨で、php7.4までは「裏側で警告が出る程度」だった関数が、php8以降は、「完全に使用できない」というふうに取り扱いが変わっていたりします。

phpメールフォームとphpバージョンについて

phpメールフォームとphpバージョンについて

phpバージョンは新しいほど処理速度も早くセキュリティも向上しています。なるべく新しいものを使うに越したことはありませんが、そのバージョンアップに合わせて、「いきなりプログラムが停止する」ということがあります。

メールフォームが停止してしまうならphpバージョンを上げなければいいではないかということになりますが、サーバー会社によってはセキュリティやサーバー負荷軽減のために、サイト運営者が知らぬ間にバージョンを上げるという場合があります。セキュリティや処理速度向上によるサーバー負荷軽減のために知らぬ間にphpバージョンが変更されることがあります。

500エラー(内部サーバーエラー)等で急に動作を停止

このため、先日まで何の問題もなかったホームページが、500エラー(内部サーバーエラー)等で急に動作を停止してしまうということが稀に起こります

直近のバージョンphp7.4までは、「警告」で済んでいたものの、php8.0以降では動作を停止するという形で取り扱いが変わる場合もあり、メールフォームを構成する古い関数や構文が非推奨となり、新しいバージョンでは正しく動作しない場合があります。

メールフォームエラーへの対策

メールフォームエラーへの対策

バージョンアップされたphpバージョンに、現行のメールフォームが対応していない場合は次のような対処をします。

  1. メールフォームがオープンソースであり、新バージョンが用意されているのであればそちらに切り替える
  2. phpバージョンを元に戻す(例:php 8.1→php7.4に戻す)。しかし、この方法は、いずれphpのセキュリティサポート終了に合わせて、旧バージョンのphpは利用不可になっていきます。
  3. また、新しいphpバージョンでは内部サーバーエラー(500エラー)を起こしてしまう関数を抽出し、その部分の機能を諦めた上で該当部分を削除する

サーバーのphpバージョンアップの影響によるWordPressやメールフォームのエラー