J'ai un soucis au niveau du form login que j'essaye de faire en php en mvc.
Mon navigateur affiche comme soucis :
Erreur fatale : Erreur non interceptée : classe "App\Controllers\login" introuvable dans C:\xampp\htdocs\location\routes\Route.php:48 Stack trace : #0 C:\xampp\htdocs\location\routes\Router .php(33) : Router\Route->execute() #1 C:\xampp\htdocs\location\public\index.php(26) : Router\Router->run() #2 {main} lancé en C :\xampp\htdocs\location\routes\Route.php à la ligne 48
Pourtant j'ai bien l'impression que mes namespace sont bon , je ne voie pas ou est le soucis .... , Pouvez vous m'aidez ?
Voila mon Controllers/login.php
Code : Tout sélectionner
<?php
namespace App\Controllers;
use App\Models\login;
class ConnexionController extends Controller {
public function afficherFormulaireConnexion() {
require 'views/login.php';
}
public function verifierConnexion() {
if(isset($_POST['username']) && isset($_POST['password'])) {
$username = htmlspecialchars($_POST['username']);
$password = htmlspecialchars($_POST['password']);
//$post = new Post($this->getDB());
$utilisateur = new login($this->getDB());
$utilisateur->setUsername($username);
$utilisateur->setPassword($password);
if($utilisateur->verifierConnexion()) {
// Connexion réussie, rediriger vers une autre page
header('Location: home.php');
exit;
} else {
// Mauvais nom d'utilisateur ou mot de passe, afficher un message d'erreur
$errorMessage = 'Nom d\'utilisateur ou mot de passe incorrect';
require 'views/login.php';
}
} else {
// Données du formulaire manquantes, afficher le formulaire de connexion
$this->afficherFormulaireConnexion();
}
}
}
Code : Tout sélectionner
Mon Models/login.php
<?php
namespace App\Models;
class login extends Model {
private $username;
private $password;
public function setUsername($username) {
$this->username = $username;
}
public function setPassword($password) {
$this->password = $password;
}
public function verifierConnexion() {
$req = $this->query('SELECT * FROM users WHERE username = ?');
$req->execute(array($this->username));
if($donnees = $req->fetch()) {
if(password_verify($this->password, $donnees['password'])) {
// Mot de passe correct, la connexion est réussie
return true;
} else {
// Mot de passe incorrect
return false;
}
} else {
// Nom d'utilisateur introuvable
return false;
}
}
}
Mon views/login.php
Code : Tout sélectionner
<h1>Connexion</h1>
<?php if(isset($errorMessage)) { ?>
<p><?php echo $errorMessage; ?></p>
<?php } ?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<label for="username">Nom d'utilisateur :</label>
<input type="text" name="username" id="username"><br><br>
<label for="password">Mot de passe :</label>
<input type="password" name="password" id="password"><br><br>
<input type="submit" value="Se connecter">
</form>