我正在尝试构建一个可以安全访问我的数据库的php类,并保持我的凭据远离窥探。作为构造函数的一部分,我正在从Web目录之外的文件构建我的凭据数组。不幸的是,虽然我已经使用php中的其他函数测试了路径并使用了vim和putty,但是当我尝试时,我仍然不会遇到相同的文件或目录错误。
导致错误的行看起来像这样
$this->creds = explode("\n",file_get_contents("../../../../../private/mysqlinfo.ini"));
我服务器上的文件夹结构如下所示
~/public_html/mysubdomain/projectDirectory/php/includes
我想要访问的文件就在这里
~/private/mysqlinfo.ini
同一目录中的以下函数显示目录是准确的,并且目录中存在mysqlinfo.ini文件
$dir = "../../../../../private";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while(($file = readdir($dh)) !== false) {
echo "filename: $file || filetype: ". filetype($dir . $file) . "\n";
}
} else {
echo "could not open directory";
}
} else {
echo "not a directory!";
}
答案 0 :(得分:3)
问题可以通过使用绝对路径而不是相对路径来解决。您始终可以尝试使用PHP脚本中的echo dirname(__FILE__);
打印文件目录的完整路径。