【こんなはずでは】PHPやScriptを使ったテンプレートの注意点

PHPやScriptを使ったテンプレートを使う場合、いくつか注意しないといけないことがあります。

アクセス数やページ数やサイト規模によっては 『 重大な問題 』 になる可能性もありますので、問題が起きないか十分に調査した上で PHP Scriptテンプレートを使う必要があります。

セキュリティの問題

一番はこれです。
完全に静的なHTMLファイルだけのページが一番安全です。

そこに、データベースの書き換えや動的にページを作成したり、階層を登っていくことができるPHPを導入すると、セキュリティのリスクが高まります。

ですので、PHPのコードを使う前には、既知のセキュリティの問題はないかどうか、しっかりと調べてから導入します。


php.cgiでPHPを動かすことのセキュリティの問題を調べてみた


ブラウザが対応していない時のことを考える

PHPは、サーバーの方でテンプレートのファイルを読み出してからユーザーに表示しますので、Scriptなどの設定をOFFにしていても、ちゃんとページが表示されます。

でも、Scriptの方はブラウザがテンプレート用のファイルを読み込むものですから、ブラウザの設定がScriptを有効にしていなければ表示できません。

サイトの文章を盗用されるのを防止するため、わざとそのようにするのであれば問題はないのですが、意図せずにレイアウトがグチャグチャになってしまったり表示できなくなってしまっては大変です。

そのようなわけで、ブラウザのScriptの設定をOFFにした場合、どのように表示されるのが良いのかよく考えた上で、Scriptのテンプレートを配置するのが良いのではないかと思います。


サーバーにインストールされているPHPのバージョンや機能がPHP の include機能に対応していない

レンタルサーバーでは、インストールされているPHPのバージョン機能にばらつきがあります。

セキュリティや機能のことがあり、できるだけ最新のバージョンがインストールされる傾向にはあるので、PHPのバージョンはどんぐりの背比べ状態ですが、PHPの機能はサーバーによってばらつきがあります。


【開けてビックリ】 PHPのinclude ができなくなった


PHPが導入されているサーバーはまだ良いとして、サーバーによってはPHPすら使えないところもあります。
(通常、月額数百円以上のサーバーであれば、たいていのサーバーではPHPは使えるとは思いますが)

ですので、サーバーによってはPHPでテンプレートを導入できない可能性もありますので、サーバーをよく確認したうえで、テンプレート化した方がよいと思います。


テンプレート内のリンクは絶対パスかURLで書く

テンプレート内の内部リンク(同じドメイン内のページへのリンク)を相対パスで書いてしまうと、エラーが出てしまう可能性が高くなります。

なぜなら、テキストファイルをそのまま読み込むからです。
テンプレートを使うページの階層がバラバラな場合、この階層ではリンクが大丈夫だけど、この階層のリンクはエラーが出ると言う状態になってしまいます。

特に、<head></head>内CSSファイルへのリンク相対パスで書くとエラーになりやすいので要注意です。



バックアップは必ずとる

ページファイルのバックアップを取らずにページファイルを全部書き換えてしまった場合、元通りにすることが困難になってしまう可能性があります。

ですので、特にページファイルを変更する前に、必ずバックアップファイルをとることが大切です。


コードの書き間違いに注意する

PHP や Script は書かれたコードに従って、サーバーやブラウザが動くものですら、コード を書き間違えると大変なことになってしまいます。

私も何度か(何度も)やらかしてしまったのですが、最悪の場合、どんどんページの文字が追加され続ける 『 セルフブラクラ 』 も起こり得ます。
Wordpress自作テンプレートのPHPのコードを実験しつつ弄くり回していたら、セルフブラクラが発生してしまいました)

では、できるだけ安全に行うためにはどうすれば良いのかと言う話なのですが、できれば、被害が少なそうな 『 ほとんどデータの含まれていないファイル 』テストして、『 無限ループ 』 などの問題が起きないことが確認できてから導入するのが無難なのではないかと思います。


PHPのコードの書き間違えをチェックする

PHPのコードを書き間違えたままファイルをincludeしてしまうと、エラーが出た箇所からページが 『 白紙化 』  してしまいます。
(調べずに適当に放置すると、大事なページが真っ白と言うこともあり得ます、と言うか、今まで何度もそう言うことがありました。(;´_`;))

ファイル数が少ない時はまだ良いのです。
全部チェックした所で200とか300程度しかファイルがないのですから。

問題は、総ページ数千単位になって来た時です。
ファイルをチェックするには膨大な時間がかかってしまいます。

しかも、自分のアクセス自体がサーバーの負荷の原因にもなってしまいます。
(数千のファイルをアクセスして確認していくわけですから)

ではローカルでチェックをしていけば?と言う話になるとは思うのですが、PHPはサーバー上で処理を行うものですから、『 ローカルでのチェックが困難 』 なのが難点です。

ですので、もし資金的に余裕があるならば、PHPが使える 『 格安サーバー 』 か、『 格安コース 』 をレンタルし、そこに全部のファイルをアップロードして、PHPのテンプレート読み込み処理が上手くいっているかどうか確認すると良いのではないかと思います。
(月額で百数十円〜数百円であれば負担しやすいです)


大量に読み込むと重くなる

テンプレート化してしまうと、ファイルが 『 細切れ 』 になるものですから、ついつい大盤振る舞いしてタグやコードを大量に書き込んでしまうものだったりします。

でも、そうするとサーバーでPHPコードの処理後、テンプレートを一枚のページに置き直した時、かなり大きなページになってしまい、サーバーやページを見ているユーザーに大きな負荷をかけてしまう可能性があります。

ですので、たとえテンプレート化しても、できるだけ軽く、できるだけデータ量が少なくなるよう心がける必要があります。

でも、色々考えてはみたものの、どうしても大きな負荷が避けられない場合は、今よりも性能の良いレンタルサーバーへ移転するか、今のコースよりも上位のコースに鞍替えすると良いです。

資金的には少し大変になってしまいますが、月額千円〜千数百円程度の負担増であれば大丈夫な方は、一度、検討されてみても良いかもしれません。


まとめ

  • PHPやScriptはセキュリティに既知の問題がないかどうか調べてから導入する
  • ブラウザの 『 ScriptがOFFの設定 』 の時のことを考える
  • 導入前に、サーバーのPHPの有無や機能やバージョンについて調べておく
    (できればテストする)
  • PHPやScriptのコードは、予めテストしてから導入する
  • テンプレートはできるだけ軽くする

次ページ

【簡単メンテでも問題あり?】<head></head>内をincludeする

前ページ

【使い回し】 複数サイトのテンプレートの共有化について

広告