Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP文件中保护数据库密码?_Php_Mysql_Database_Passwords - Fatal编程技术网

在PHP文件中保护数据库密码?

在PHP文件中保护数据库密码?,php,mysql,database,passwords,Php,Mysql,Database,Passwords,我有一个php文件,它从我的数据库中检索一些重要数据,现在如果有人通过URL访问php文件,它会直接显示我不希望发生的数据。 是否可以创建一个密码输入框,该框将提示输入数据库密码并将其值分配给$password变量(请参见下面的代码),以便只有用户输入正确的密码,文件才会与数据库交互 更新示例代码: 通过浏览器访问此php文件时,会显示: 彼得·帕克 格伦福布斯 我不希望人们直接看到输出!我希望他们首先输入密码,以便php文件与数据库交互并显示输出 希望你们这次能抓住我 Apache或任何其他服

我有一个php文件,它从我的数据库中检索一些重要数据,现在如果有人通过URL访问php文件,它会直接显示我不希望发生的数据。 是否可以创建一个密码输入框,该框将提示输入数据库密码并将其值分配给$password变量(请参见下面的代码),以便只有用户输入正确的密码,文件才会与数据库交互

更新示例代码:

通过浏览器访问此php文件时,会显示:

彼得·帕克 格伦福布斯

我不希望人们直接看到输出!我希望他们首先输入密码,以便php文件与数据库交互并显示输出


希望你们这次能抓住我

Apache或任何其他服务器将根据它看到的文件扩展名执行文件,并告诉它如何处理。如果没有具体说明,它将以文本的形式显示

如果您的服务器运行的PHP文件很好,那么您可以包含任何您喜欢的文件名——包括扩展名,PHP将假定它只是PHP。但是,如果您试图让它变得棘手,并将其称为.php5或.include,而您还没有将服务器设置为以PHP的形式运行这些文件类型,那么它将作为简单的文本输出给用户

在服务器上正确设置文件类型,或使用默认扩展名调用所有文件类型

根据您提供的代码:

<?php
$host = "localhost";
$db_name = "NAME_OF_THE_DATABASE";
$username = "root";
$password = "PASSWORD_OF_THE_DATABASE";
?>
一个用户输入这个准确的URL将看到一个总的什么都没有。这是因为当文件以PHP的形式执行时,它只分配变量值,而不显示它们


如果该文件没有作为PHP可执行文件关联,服务器将按原样将内容发送给用户—在编写代码时显示所有代码。

从您的问题中我了解到的是,您不希望任何人看到密码,所以我认为 您可以对php代码进行加密,并且仍然在服务器上运行它

使用以下工具

您完全可以隐藏/编码/加密php源代码,“其他人”可以在他们的机器上安装它。您可以使用以下工具来实现相同的目标

我知道他们不会看到密码,我只是不想让他们看到FILE>从MySQL数据库检索的内容!!!上面的代码只是一个示例

您要查看.htaccess,然后:

除非您的文件add.php检查扩展名,否则您不应该在屏幕上看到代码。 我建议您在一个新的php文件中分离数据库细节,并将其移动到上一级目录中

HTML代码:

<form action="{your url}">
  Please enter you password:<input name="password" type="password" />
  <input type="submit" value="Submit" />
</form>

PHP code:

$password=$_GET['password'];
if($password=="1234"){

echo 'correct password';

//and add your code here

}
有很多方法

<?php
if($_GET['token'] != 'a1a2a3a4a5') {
    die('Wrong request!');
}
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons");

while($row = mysqli_fetch_array($result)) {
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br>";
}

mysqli_close($con);
?>
然后从以下位置访问您的页面:


如果我是你,如果我正确理解你的问题,我会使用htaccess文件。基本上,您将在要保护的目录中创建两个文件。首先,您将命名为.htaccess。这就是文件名中所需的全部内容。在编辑程序(例如:记事本+)中打开文件并插入以下代码:

    AuthType Basic  
    AuthName "restricted area"  
    AuthUserFile "the/path/to/the/directory/you/are/in/.htpasswd" 
    require valid-user
您看到的.htpasswd是您将创建的第二个文件的文件名。创建名为.htpasswd的文件,然后打开它进行编辑。在该文件中,键入要进入目录的人员的用户名

    JohnDoe
后跟一个冒号

    JohnDoe:
现在,转到一个类似的网站,在提供的字段中输入您想要的用户名和密码。提交信息

完成此操作后,它将弹出一行格式化的信息。在.htpasswd文件中,复制冒号后面的字母,并将它们粘贴到冒号后面。保存你的工作

    JohnDoe:$apr1$eBsB98Mg$93ckYxSmT5BBfPqOS5a/6.
现在您已经完成了所有这些,当有人访问您网站上的目录时,他们将被提示提供用户名和密码。如果他们知道,它会让他们进入,然后显示PHP文件中的内容,您需要确保该文件名为index.PHP


我希望这有帮助

一个包含您所拥有内容的PHP文件实际上如何显示任何内容?你有什么有趣的分机吗?如果您的服务器配置为以php的形式运行所有.php文件,请确保将其称为a.php-用户将看不到任何内容。如果您将其称为.inc之类的有趣内容并将其包括在内,服务器将不知道如何将其作为PHP运行,而只是将其显示为文本。这听起来好像您的服务器没有解析PHP文件或禁用了PHP…在解释完PHP后,他们不会在浏览器控制台中看到它。因此,您最好创建一个登录系统并使用WHERE子句。即使是你最好的朋友也会支持你;相信我,可能的复制品
    JohnDoe:$apr1$eBsB98Mg$93ckYxSmT5BBfPqOS5a/6.