Hello hello à tous !
j'aibesoin de vous aujourd'hui car je n'arrive pas à "enregistrer" un membre avec ce que je tente de mettre en place avec mon MVC POO!
je viens de creer une fonction qui me prepare un user avec des conditions:
Fichier UserManager.php
public function addUser($username, $password)
{
$query = $this->pdo->prepare("INSERT INTO user SET username = ?, password = ?");
$password = password_hash($password, PASSWORD_BCRYPT);
$query->execute([$username,$password]);
$query->setFetchMode(PDO::FETCH_CLASS, $this->class);
$result = $query->fetch();
if (empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['username'])) {
$errors['username']= "Votre pseudo ne correspond pas aux caractères valides";
}
if (isset($_POST['username'])) {
$errors['username']= "Ce pseudo existe déjà ou est vide merci d'en choisir un autre";
}
if (empty($_POST['password']) || $_POST['password'] != $_POST['password_confirm']) {
$errors['password']= "Votre mot de passe ne correspond pas ou n'est pas rempli correctement!";
return $errors;
}
return $user; [b]c'est souligné par l IDE donc marche pas[/b]
}
moi si je me traduis je dis je veux que ma fonction me cree mon user avec username et password , elle verifie le pasword, et si
en revanche ma viariable $_POST est vide de username ou ne correspond pas à pregmatch ou si username existe deja ou si le password est soit vide ou pas identique à la confirmation : alors tu me retourn les errors
si tout est bon tu retournes mon user!
Mon fichier controller.php
$pdo = Connection::getPDO();
$user = new User();
$userManager = new UserManager($pdo);
$user = $userManager->addUser($username, $password);
$errors = array();
if (!empty($_POST)) {
if (!isset($user)) {
$_SESSION['auth'] = $user;
$_SESSION['premier_affichage'] = true;
header('Location: ' . $router->url('blog'));
exit();
}
}
require_once('../views/auth/login_register.php');
deja j'ai un message d'erreur en plus : qui dit que ma variable $username n'existe pas ( dans mon controller)
bref je comprends vraiment pas
est ce que vous pourriez m'aider?
PI = pour info mes sessions = pour l'affichage de mes alertes et ca OK
merci bcp
belle journee