système authentification en MVC
Bonjour,
Je fais encore appel à vous pour mon petit projet. Je trouve très compliqué de mettre en place l'authentification connexion etc. peut-être parce que je débute... et ma logique doit être désastreuse:(
Je pensais dans mon model Utilisateur :
créer une fonction est_connecte pour détecter si l'utilisateur est connecté sinon ouvrir une session et mettre dans la session le login :
Code:
1 2 3 4 5 6 7
| function est_connecte ($identifiant) {
//si la session est active ou non
if(session_status === PHP_SESSION_NONE) {
session_start();
$_SESSION['login'] = $identifiant;
}
} |
puis créer une methode de connexion :
- faire une première requête pour comparer le login puis une deuxieme pour le mot de passe mais je ne sais pas trop comment la mettre en place et ou placer :password, d'ailleur j'ai une erreur password indefini...
- puis pour finir faire appel à la methode est_connecte pour faire si besoin le session_start() et rediriger vers accueil.php ou autre page.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| function connexion($identifiant, $password) {
//control login
if(is_string($identifiant) && is_string($password) && !empty($identifiant) && !empty(password)) {
$req=$this->bdd->prepare("select id_utilis, login, password from utilisateur
where utilisateur.login = :identifiant");
$req->bindParam(':identifiant', $identifiant);
$req->bindParam(':password', $password);
$req->execute();
$count = $req->rowCount();
$resultat = $req->fetchAll(PDO::FETCH_ASSOC);
var_dump($count);
if($count===1) {
//Vérification du mot de passe avec password_verify
if(password_verify($password, resultat["password"])) {
est_connecte($identifiant);
header('location: ../view/vueRecettes.php');
}
}
} else {
echo "erreur";
}
} |
mon controller
Code:
1 2 3 4
|
function connexion($identifiant, $password) {
return $this->modelUtilisateur->connexion($identifiant, $password);
} |
et pour finir si besoin ma page avec le formulaire de connexion
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php
require '../controller/controllerUtilisateur.php';
$utilisateurController = new ControllerUtilisateur();
if(isset ($_POST['identifiant'])) {
$utilisateur = $utilisateurController->connexion(
$identifiant = trim(strip_tags($_POST['identifiant'])),
$password = trim(strip_tags($_POST['password']))
);
}
?> |
Je veux créer quelques chose de basique déjà pour apprendre et comprendre, Est ce que je suis sur la bonne voie ? comment construire ma requête ?
merci de vos conseils et aide.