28.02.2022, 19:38
Witam was po prawie dwuletniej przerwie od komputera. Więcej czasu, więcej chęci i więcej motywacji.
Wszystko w/w jest, ale dalej są problemy
Posiadam sobie taką funkcję w Controllerze
I teoretycznie return powinien mi zwrócić tablicę z bazy danych, ale ogólnie metoda $Result = $Stmt->fetchAll() nie chce jakoś przekazać do PasswordVerify czy nawet pokazać ją na echo/vardumpie
Login.php wygląda następująco
I też za chiny nie chcą się wyświetlić informację tylko warning "Warning: Undefined array key "password"
Teraz się zastanawiam jak to ugryźć, ale myślę już jakiś czas no i nie mam pomysłu. Jak RegisterController poszedł mi świetnie to LoginController już dupą.
PS: Wiem, że są frameworki, ale chcę to ręcznie napisać przy użyciu OOP
Wszystko w/w jest, ale dalej są problemy
Posiadam sobie taką funkcję w Controllerze
Kod:
public function GetUser($login, $password): string {
$Query = "SELECT `name` from `users` where `name`=:login";
try {
$Stmt = $this->conn->prepare($Query);
$Stmt->bindValue(":login", $login, PDO::PARAM_STR_CHAR);
$Stmt->execute();
if (!$Stmt) {
$_SESSION['ErrorMsg'] = "Login lub hasło jest błędnę!";
return FALSE;
}
$Result = $Stmt->fetchAll(PDO::FETCH_ASSOC);
echo $Result['password'];
$CheckPassword = $this->PasswordVerify($password, $Result['password']);
if (!$CheckPassword) {
$_SESSION['ErrorMsg'] = "Login lub hasło jest błędnę!";
return FALSE;
}
$Result = NULL;
$Query = "SELECT * from `users` where `name`=:login";
$Stmt = $this->conn->prepare($Query);
$Stmt->bindValue(":login", $login, PDO::PARAM_STR_CHAR);
$Stmt->execute();
return $Result = $Stmt->fetchAll(PDO::FETCH_ASSOC);
}
catch (PDOException $error) {
echo $error->getMessage();
exit('</br>Database error');
}
}
Login.php wygląda następująco
Kod:
$Core = new Core();
$Login = new LoginController();
$login = $_POST['login'];
$login = $Core->Clean($login);
$password = $_POST['password'];
if(!$Core->CheckInput($login) && !$Core->CheckInput($password)) {
$_SESSION['ErrorMsg'] = "Pola nie mogą być pustę!";
$Core->Refresh("0", "/?page=login");
}
if (!$Login->GetUser($login, $password)) {
$_SESSION['ErrorMsg'] = "Login lub hasło jest błędnę!";
$Core->Refresh("0", "/?page=login");
}
else {
$_SESSION['Logged'] = TRUE;
$_SESSION['Login_id'] = $Result['id'];
$_SESSION['Name'] = $Result['name'];
$_SESSION['Wallet'] = $Result['wallet'];
$_SESSION['Steam_id'] = $Result['Steam_id'];
}
Teraz się zastanawiam jak to ugryźć, ale myślę już jakiś czas no i nie mam pomysłu. Jak RegisterController poszedł mi świetnie to LoginController już dupą.
PS: Wiem, że są frameworki, ale chcę to ręcznie napisać przy użyciu OOP