我对安全性不是很熟悉,所以我依靠我在互联网上找到的东西。我找到了一个解释他所做事情的人以及他的方法如何工作的网站。人们可以复制粘贴它来缓解事情。 虽然我明白了很多,我不能拿出它自己(我很新的PHP/XHTML等)PHP PDO登录脚本不起作用。包含错误
网站:How to store safely with PHP and MySQL
他使用PDO在他的教程。我能够将信息存储在数据库中。但是当我尝试使用他提供的代码实际登录的脚本时,虽然它看起来包含错误。
我已经做好了一切,一切正常,但哈希密码与插入的密码(散列等)的比较无法正常工作。
这到底是怎么回事?
在此先感谢!
编辑
人们一直在问的代码,所以,在这里它是:
session_start();
require('config.php');
// Setting up a connection
$MyConnection = new PDO('mysql:host=*;dbname=*', $dbuser, $pass);
// Retrieving information from form.
$username = $_POST['username'];
$password = $_POST['password'];
$sth = $MyConnection->prepare("SELECT * FROM AMP_Users WHERE Username = :username LIMIT 1");
$sth->bindParam(':username', $username);
$sth->execute();
$user = $sth->fetch(PDO::FETCH_OBJ);
// Hashing the password with its hash as the salt returns the same hash
if (crypt($password, $user->hash) == $user->hash) {
echo 'You are now logged in. If we actually used sessions this time.';
}
我会加$ _SESSION [ '名'] = $用户名,一旦代码开始上班。直到现在,我只是回应,如果它成功或没有。它没有显示任何内容,所以它不起作用。
第二个编辑
就像一个快速更新,由我提供的脚本,是整个脚本。没有什么是泄漏的。 (除了数据库的名称等) 因此我想知道这个问题是否可能是因为我没有使用将密码保存到数据库中的散列脚本。虽然我已经投入了,但它仍然没有回应。我仍然做错了什么?
向我们展示您的代码,我们可以修复它您。 – Aristona
哪里是代码? –
这是在网站链接上提供的代码..它是完全一样的。而不是SELECT哈希我使用SELECT * 但是好的,我会提供代码。 –