LoginSignup
3
4

More than 5 years have passed since last update.

PHP .inc拡張子ファイルetcファイルを複数に分けるとソースがすっきりする

Last updated at Posted at 2016-12-20

ソースの整理

わかりやすいサイト

設定ファイルを作る →拡張子(.inc)

1.都道府県の配列、お問い合わせの配列、ご希望の連絡方法の配列を定義するファイルを生成する
2.そのファイルをcontact.php、confirm.php、thanks.phpの先頭でincludeする
 (ただしsession_start関数の後でincludeすること)
ソースがすっきりする上に修正があった場合楽になります

・関数のファイルを作る
設定ファイルを作ると同じです

・その他
処理するファイルと表示処理を行うファイル(テンプレート)を分けて作成する
フォームチェックだけを行うファイルを作成し、エラーチェックはそのファイルで行う
メールを送信するファイルを作成し、メール送信はそのファイルで行う

拡張子incの設定ファイル

↓先輩が教えてくれたこと


・配列を定義するファイルの件
これは拡張子を.incなどにした方が良いと思います
後ディレクトリを一つ作り、その中にdata.incとして保存したほうが良いと思います
(ディレクトリ名、拡張子は自由です)

作成したディレクトリ名を「conf」ファイルの拡張子を「.inc」とした場合

data.incに関してはセッションを空にする等の処理は不要です
これはWEBサーバーの設定で「conf」ディレクトリを制御します
今は気にしなくて良いです

ディレクトリ構成の例
conf━data.inc ←配列等が記述されいる
┣ form.php ←入力画面
┣ formCheck.php ←エラーチェックページ
┣ confirm.php ←確認画面
┗ thanks.php ←メール送信・完了画面

まず「http://192.168.1.30/~/data.inc」にアクセスしてみてください
おそらくdata.incの中身がテキストとして出力されると思います

次にdata.incをconfディレクトリにコピーし、「http://192.168.1.30/~/conf/data.inc」にアクセスしてみてください
※confディレクトリは私が作成しました。.htaccessというファイルは削除しないでください
おそらくブラウザが403エラーを返すと思います

confディレクトリの.htaccessというファイルで外部からのアクセスを不可するという設定をしてあります
当然ですが、PHPからはアクセスは可能です

.htaccessの中身はPHPと無関係であり、WEBサーバーの設定となるので今は気にしなくて良いです

問題点
悪意のあるユーザーが推測で「http://192.168.1.30/~takahashi/data.inc」にアクセスした場合
data.inc(設定ファイル)の中身ブラウザ上に出力されると、大問題になります
このファイルの中身がDBのID、パスワードなどの場合は本当に洒落にならなくなります

作業手順
/home/~/public_html/data.incをconfにコピーする

各プログラムの以下の部分を修正
include 'data.inc'; → include 'conf/data.inc';

動作確認

/home/~/public_html/data.incを削除


3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4