Edited at

DBパスワードなどをルートより上位ディレクトリに隠してrequireで読み込み

More than 5 years have passed since last update.

ちょっと苦労したのでメモ。

パスワードは上位ディレクトリに置いた方がイイ。とか

色々言われてるけど、なかなか出来なかった。


パスワードのファイル

このファイルにデータベースへの接続に必要なモノを配列で入れます。

カンマ忘れに注意。

これをルートディレクトリより上に置く。


DSN.php

<?php

$dsn = array(
'host' => 'ホスト名',
'user' => 'ユーザー名',
'pass' => 'パスワード',
'dbname' => 'DB名'
);
?>



require_onceで読み込む

これが出来なかった。

なんかエラーでるし、パス合ってんのに。

ほんで調べたら dirname(_FILE_) を使うとの事。


index.php

<?php

require_once dirname(__FILE__) . '/../../../DSN.php';
session_start();
session_regenerate_id(true);
//-------------------------------
// ●サーバに接続
//-------------------------------
$my_Con =
mysql_connect($dsn['host'],$dsn['user'],$dsn['pass']);
if ($my_Con == false){
die("接続に失敗しました");
}else{
}
//-------------------------------
// ●データベースに接続
//-------------------------------
if (mysql_select_db($dsn['dbname'])){
}else{
die("<br />データベースの選択に失敗しました");
}
mysql_query('SET NAMES UTF8');

こんな具合。

●require_once dirname(_FILE_) . '/../../../DSN.php';

 何なのこのパス。

●phpマニュアル読んでも全然分からんかった。

 そもそもアレってマジで何書いてんの?

 バカなりに色々やったらコレで行けました。

●このパスの場合、結構な子階層にあるからなんですが

 DSN.php

   |

   ルートディレクトリ

      index.html

         |

        hoge(フォルダ)

             |

            fuga(フォルダ)

             index.php  ←ここから読んだ

●dirname(_FILE_)っていうのが

 親ディレクトリのパスを返す。ものらしい。

 まぁ、コレが意味分からんかった訳で…。


上級者の方は「は?何言ってんの?」って思うんだろうなぁ…。

でも、みんな初めは分からないので同じ様に困ってる人もいるかも。

(俺がバカすぎて分からなかった可能性は大いにある)

って事でメモなので突っ込まないでください。

あ、でも「それちょっとマズいよ」って部分は指摘してください!