2

所以我在数据库 mysql.user 中存储了使用密码加密方法的用户(默认情况下,这是我所知道的)和我的 database.users,它们具有登录凭据用户和密码(密码使用 md5 加密)。问题是我想使用 md5 加密插入的密码(来自表单),用户能够查询数据库。

这些是从表单的 $_POST 方法中提取的登录凭据,并将它们作为会话以便在连接时使用:

$_SESSION['utilizator']=$utilizator; //user
$_SESSION['parola']=md5($parola); //password

这是我需要查询数据库的每个文件中包含的数据库连接:

$link = mysqli_connect('localhost', $_SESSION['utilizator'], $_SESSION['parola']);
if(!$link){
    die('Unable to connect to the database: ' . mysqli_error($link));
}
4

3 回答 3

2

我建议您在将用户名和密码存储在会话中之前对其进行整理和清理。至于mysqli_connect 它需要 4 个参数

<?php $link = mysqli_connect("myhost","myuser","mypassword","mydatabase") or die("Error " .     mysqli_error($link));?>

查看mysql-_connect的 php 页面上的示例。我在您的代码中注意到的另一件事是,为什么用户必须登录数据库?出于安全原因,数据库用户和应用程序用户必须不同。

于 2013-08-17T09:46:12.550 回答
2

尽量不要使用 md5,因为它不再安全。为什么要使用用户凭据连接到数据库?您应该有一个密码和用户,专门用于此,并在需要数据库连接的任何地方使用它,并允许用户仅在他通过您的登录时更改数据库(您所做的事情不安全),换句话说,那些用户凭据仅适用于 DB 和 DB,并且只有您知道。完成此操作后,您可以将与用户相关的内容保存在表中:密码和用户名如何加密,如果可以,请登录检查加密密码和数据库密码,然后进行查询。

编辑:

由于您希望将通行证存储在 cookie 或会话中,因此此方法将有所帮助,因为您可以简单地存储加密密码并检查它是否与数据库中的密码相同。

于 2013-08-17T09:44:34.483 回答
1

MySQL 不使用 md5 存储用户密码(至少默认情况下)。它使用 MySQLPASSWORD()函数。如果您使用密码而不运行它,md5()它应该可以工作。

$_SESSION['parola']=$parola; //password
于 2013-08-17T09:40:09.313 回答