Salut,
Il faudrait déjà que tu ais un système de connexion de base.. (avec un formulaire etc..)
je ne pense pas que c'est ce qu'il souhaite faire.
Il aimerait que l'utilisateur soit directement connecté au site au moment où il finalise l'enregistrement d'un nouveau compte (sans passer par un formulaire de connexion).
L'idée ici c'est :
Vu que l'utilisateur vient de s'enregistrer, pourquoi ne pas le connecter directement ? On gagne du temps, et l'utilisateur ne s'embête pas à RE-tapper son login/mdp qu'il vient à L'INSTANT de renseigner lors de l'inscription...
En fait en général, les concepteurs de sites ne connectent PAS directement les nouveaux comptes, à cause des éventuels "robots".
En effet votre site pourrait subir une "attaque" qui consiste à créer UNE MULTITUDE de nouveaux comptes "bidon" par des "robots".
Alors pour se prémunir on a plein de systèmes : CAPTCHA, l'ien d'activation par e-mail, le nouveau truc de Google là etc.
Mais si j'amais tu te dis que le site n'est pas assez "important" pour subir une attaque, ou pas assez "sensible" pour que ce soit grave, et que tu décide quand-même de connecter tes utilisateurs dès leur inscription, alors j'imagine que je ferai comme ça :
La fonction query que tu nous a montré (dans la fonction register()) semble être une fonction à toi (pas celle de PDO), alors modifie-là pour faire en sorte qu'elle retourne false si la requête n'as pas aboutie.
Ensuite dans la fonction register(), vérifie avec un if si le INSERT te renvoie donc false ou non.
Si ce n'est pas false, alors on connecte l'utilisateur.
La façon de connecter l'utilisateur dépend de la façon dont tu as conçu ton site, mais disons pour faire simple qu'on va enregistrer une variable de SESSION :
public function register($name, $firstname, $email, $password, $ipregister) {
$password = password_hash($password, PASSWORD_BCRYPT);
$user_created = $this->db->query('INSERT INTO clients SET name = ?, firstname = ?, email = ?, password = ?, ipregister = ?', [$name, $firstname, $email, $password, $ipregister]);
if ($user_created != false)
{
$_SESSION['user_connected'] = true;
}
}
Il faut adapter selon ta conception de ton site,
et ne pas oublier de modifier ta fonction personnelle query() pour qu'elle renvoie un boolean selon si la requête à aboutie ou non.