Rejestrując użytkownika zapisuję do bazy danych jego hasło za pomocą funkcji crypt(). Podczas logowania chcę porównać wpisywane tekstem jawnym znaki z hashe`m zapisanym w bazie danych. Pojawił się jednak problem. Najpierw pokażę kod, pytanie poniżej:
Metoda doLogin:
public function doLogin(){
$userExists = $this->dbHandler->prepare("SELECT 1 FROM `users` WHERE `nickname` = BINARY :nickname AND `password` = BINARY :password");
$userExists->bindValue(':nickname', $this->nickname, PDO::PARAM_STR);
$userExists->bindValue(':password', $this->password, PDO::PARAM_STR);
if($userExists->execute() == false){
print_r($userExists->errorInfo());
return false;
}else{
return $userExists->fetchAll(PDO::FETCH_ASSOC);
}
return true;
}
if ($loginUser->doValidate()) {
if ($loginUser->doLogin()) {
$rowRecords = $loginUser->doLogin();
if ($rowRecords) {
foreach($rowRecords as $singleRecord){
if(crypt($singleRecord['password'], $_POST['password']) == $_POST['password']){
$_SESSION['logged'] = true;
$_SESSION['nickname'] = $_POST['nickname'];
$_SESSION['password'] = $_POST['password'];
header('Location: ../index.php');
}
}
}
}else{
echo 'Błędny login lub hasło!';
}
}
Komunikat:
Notice: Undefined index: password in C:\xampp\htdocs\strona\login\login_view.php on line 66
Dlaczego otrzymuję taki komunikat, co jest nie tak i jak to naprawić w kontekście w/w kodu?