我刚刚开始参加会议并且刚刚读完了它们。我创建了一个简单的登录表单,并希望得到一些关于我是否做得对的建议。
我的数据库中只有一个表,只有一个条目(只有一个用户可以登录),并在提交表单时进行以下检查:
function loginWithDetails($username,$password) {
global $dbh;
$stm = $dbh->prepare("SELECT * FROM `login` WHERE id = '1'");
$stm->execute();
$row = $stm->fetch(PDO::FETCH_ASSOC);
$hasher = new PasswordHash(8, false);
$check = $hasher->CheckPassword($password, $row['password']);
if (!$check)
return 0;
else {
$_SESSION['userid'] = $row['username'];
return 1;
}
}
此函数位于我的functions.php
文件中,该文件包含在index.php
中(其中session_start()
被调用)并使用Phpass进行散列。此后,我检查$_SESSION['userid']
以确认用户已登录。一切正常,但我想确保该方法足以检查登录。