Page 1 sur 1

la fonction password_verif

Posté : 21 juil. 2020, 18:00
par ab1011
Bonjour, voici mon code :

class/userManager.php
class userManager {

	private $_db;

	public function __construct(PDO $db) {

		$this->setDb($db);
	}

	public function setDb($dbh) {

		$this->_db = $dbh;
	}

	public function insertUser(User $user) {

		$sql = 'INSERT INTO user (pseudo, pass) VALUES (:pseudo, :pass)';

		$pseudo = htmlspecialchars($user->getPseudo());
		$pass = htmlspecialchars($user->getPass());

		$userpass_form = password_hash($pass, PASSWORD_DEFAULT);


		$stmnt = $this->_db->prepare($sql);

		$stmnt->bindParam(':pseudo', $pseudo);
		$stmnt->bindParam(':pass', $userpass_form);

		$stmnt->execute();
	}

	public function getPseudo($pseudo) {

		$sql = 'SELECT pseudo FROM user WHERE pseudo = :pseudo';
        
        $stmnt = $this->_db->prepare($sql);

        $stmnt->bindParam(':pseudo', $pseudo);

        $stmnt->execute(array(

        	':pseudo' => $pseudo
        ));

        $count = $stmnt->rowCount();

        if($count <= 0) {

        	return true;
        }
        else {

        	return false;
        }
	}

	public function getUser($pseudo) {

		$sql = 'SELECT pseudo, pass FROM user WHERE pseudo = :pseudo AND pass = :pass';

		$stmnt = $this->_db->prepare($sql);

		$stmnt->bindParam(':pseudo', $pseudo);
		$stmnt->bindParam(':pass', $pass);


		$stmnt->execute(array(

			':pseudo' => $pseudo,
			':pass' => $pass
		));

		$data = $stmnt->fetch(PDO::FETCH_ASSOC);

		if(password_verify($pass, $data['pass'])) {

			return true;
		}
        else {

        	return false;
        }
    }
}
process/process_login.php
require('includes/inc_connexion.php');
require('class/userManager.php');

if(isset($_POST['submit_form'])) {

    $pseudo_form = trim($_POST['pseudo_form']);
    $userpass_form = trim($_POST['userpass_form']);

    if((isset($pseudo_form)) AND (isset($userpass_form))) {

        $manager = new userManager($db);

        if(!$manager->getUser($pseudo_form, $userpass_form)) {

            $message = '<p class="error">Mot de passe incorrect !</p>';
        }
        else {

            $message = '<p class="success">Accès OK !</p>';
        }
    }
    else {

        $message = '<p class="error">Identifiants incorrects</p>';
    }
}
Quand je veux me connecter j'ai ce message d'erreur (userManager.php) -> Notice: Trying to access array offset on value of type bool

Merci pour votre aide & bonne soirée

Re: la fonction password_verif

Posté : 21 juil. 2020, 18:07
par or 1
if(!$manager->getUser($pseudo_form, $userpass_form)) {
public function getUser($pseudo) {

il faudrait savoir, un seul ou deux paramètres pour cette fonction.

Re: la fonction password_verif

Posté : 21 juil. 2020, 18:24
par ab1011
il y a 2 paramètres pour cette fonction.

public function getUser($pseudo, $pass) {