Witam, mam problem z porównywaniem hasła zaszyfrowanego za pomocą funkcji crypt(). Wszystko to robię za pomocą obiektowego PHP.
Kod modelu:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once '../database/sql_database.class.php';
require_once 'login.class.php';
if(isset($_POST['submitLogin'])){
$dbObject = new SqlDatabase();
$loginUser = new LoginUser($dbObject->getInstance());
$loginUser->getNickname($_POST['nickname']);
$loginUser->getPassword($_POST['password']);
if ($loginUser->doValidate()) {
if ($loginUser->isUser()) {
if(crypt($loginUser->getPassword($_POST['password'], $_POST['password']) == $_POST['password'])){
//tu sobie dodam sesję i całą resztę logowania
echo 'Zostałeś pomyślnie zalogowany';
}
} else {
echo sprintf('<div class="error">Wystąpił błąd podczas logowania: %s</div>', $loginUser->getErrorMessage());
}
} else {
echo sprintf('<div class="error">Błąd: %s</div>', $loginUser->getErrorMessage());
}
}
?>
Chodzi konkretniej o:
if(crypt($loginUser->getPassword($_POST['password'], $_POST['password']) == $_POST['password'])){
//tu sobie dodam sesję i całą resztę logowania
echo 'Zostałeś pomyślnie zalogowany';
}
Wiem, że coś tu pochrzaniłem. W strukturalnym kodzie miałem taki analogiczny kod:
if(crypt($password, $data['password']) == $data['password'])
W moim przypadku ów $password filtrowane jest w metodzie doFilter. Jest to "odniesienie" to pola o takiej nazwie. Tak wygląda ta metoda:
public function doFilter(){
$this->nickname = trim($this->nickname);
$this->password = trim($this->password);
return $this;
}
Nie wiem jak odwołać się do pola "password" przy użyciu funkcji crypt().
Ma ktoś jakiś pomysł?