如何在Web root之外访问sql登录信息

时间:2012-12-06 03:47:07

标签: php mysql web passwords root

我是新手。

我在这里有一个PHP脚本/var/www/check_login.php,其中包含纯文本的sql登录信息。我的登录页面/var/www/login.php通过<form name="" method="post" action="check_login.php">

访问此文件以验证用户凭据是否正确

我想将check_login.php存储在网络根目录之外,因此无法远程访问。

如何告诉login.php访问网络根目录之外的check_login.php

我猜它不像action="/var/<new folder outside of root>/check_login.php

那么简单

谢谢!

5 个答案:

答案 0 :(得分:1)

将包含凭据的文件移至一个级别目录和文件check_login.php

include('../credentials.php');

答案 1 :(得分:1)

你走在正确的轨道上。在/ var / www中为您的站点创建一个不同的文件夹。我喜欢这样设置:

/var
---/www
-------/mysite
----------/html
----------/config
----------/lib

等。在apache中,我告诉它我的文件回家是

/var/www/mysite/html

然后我在/var/www/mysite/config中存储任何配置文件(如MySQL凭据或类)。然后,我可以使用以下内容包含这些文件:

require_once("/var/www/mysite/config/mydbcreds.php")

在您的示例中,login.php需要在此文件中调用您的检查功能,并且如果您需要将其包括在内,则可以。 Check out my answer here关于如何使用可能为您节省时间和麻烦的MySQL连接类。

答案 2 :(得分:0)

为您的数据库连接信息创建一个新页面,并将其移至/var/

然后,您可以使用HTML action="check_login.php"

并在check_login.php脚本中,使用Gustek建议的解决方案:

include('../credentials.php');

答案 3 :(得分:0)

您只需使用include('path of folders/ your_ logging_data .php);

即可

答案 4 :(得分:0)

如果您使用的是共享主机方案,我只需在我的网站根目录外创建一个新文件夹,并将所有非公开文件放在那里。然后在您网站的 php.ini 文件中,我将编辑包含此新文件夹的包含路径。在.php文件中,简单地将require("the-non-public-file.php");放在顶部,即没有绝对路径。