这就是我认为正在发生的事情。
您有一页(例如:)index.php
,其中包含第二页(例如:)/bar.foo.php
。在 上index.php
,您建立主要连接:
<?php
// index.php
// ...
$db = mysql_connect($db, $username, $password);
// ...
在第二页上,您执行一些功能:
<?php
// /bar/foo.php
// ...
mysql_query("select * from mytablefoo ORDER BY id DESC LIMIT 9"); // TODO: use mysqli or PDO here
// ...
但是,如果您直接访问第二个文件,则没有数据库连接,因此它尝试使用默认凭据进行连接,失败并引发错误。
如果您想防止这种情况发生,那么您需要保护您的网站。我的猜测是永远不应该允许人们进入您的/bar
文件夹。您可以通过将文件添加到此文件夹来阻止人们进入此文件.htaccess
夹。
.htaccess
文件让您可以控制用户如何与您网站上的文件进行交互。只需创建一个新的文本文件,并将其另存为.htaccess
(此文件在 . 之前没有任何内容.
)。
将此文件放入您的/bar
文件夹中,并将以下文本放入文件中:
deny from all
现在,如果有人尝试直接访问此文件夹,他们将看到一条 403 错误消息。PHP 文件仍然可以被其他页面包含。
您可以在此处了解更多信息.htaccess
:
http://perishablepress.com/stupid-htaccess-tricks/