如何在网站根目录之外访问SQL登录信息

3

我是新手。

我有一个位于这里的php脚本 /var/www/check_login.php,其中包含明文的SQL登录信息。此文件通过登录页 /var/www/login.php 通过 <form name="" method="post" action="check_login.php"> 访问以验证正确的用户凭据。

我想将 check_login.php 存储在 Web 根目录之外,以便无法远程访问它。

我应该如何告诉 login.php 访问 Web 根目录之外的 check_login.php

我猜这并不像 action="/var/<new folder outside of root>/check_login.php 这么简单。

谢谢!

5个回答

1
将带有凭据的文件移动到上一级目录,并在文件check_login.php中进行检查。
include('../credentials.php');

1

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

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

在Apache中,我告诉它我的文档主目录是

/var/www/mysite/html

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

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

在你的例子中,login.php需要在这个文件中调用你的检查函数,并且如果你需要它被包含,它就可以被调用。看看我在这里的答案,了解如何使用一个MySQL连接类,可能会为你节省一些时间和头痛。

0
创建一个新页面来存储你的数据库连接信息,并将其移动到/var/目录下。
然后,你可以在HTML中使用action="check_login.php"
在你的check_login.php脚本中,使用Gustek建议的解决方案。

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


0

您可以简单地使用include('文件夹路径/您的日志数据.php');


0
如果您使用的是共享主机计划,我建议您创建一个位于网站根目录之外的新文件夹,并将所有非公开文件放在其中。然后,在您网站的 php.ini 文件中,编辑包含路径以包括这个新文件夹。在您的 .php 文件中,只需在顶部放置 require("the-non-public-file.php"); 即可,即不需要绝对路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接