ajouter register

php
Gwenael PLANCHON 1 year ago
parent 0ba42cba82
commit ab389aa003

@ -9,6 +9,7 @@ use model\Connection;
use model\GameGateway;
use model\MdlDifficulte;
use model\MdlJeu;
use model\PseudoDejaPrisException;
use model\ValidationException;
use model\MdlUser;
use model\MdlAdmin;
@ -95,6 +96,35 @@ class UserController {
}
}
public function register() {
global $twig, $dVueErreur;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if($_REQUEST['password']!=$_REQUEST['cpassword']){
$dVueErreur[]="Mots de passe différents.";
echo $twig->render('erreur.html',["dVueErreur" => $dVueErreur]);
return;
}
$ug = new MdlUser();
try{
if($ug->register($_REQUEST['login'], $_REQUEST['password'])){
header('Location: login');
} else {
$dVueErreur[]="Erreur de création de compte. Le compte doit déjà exister.";
echo $twig->render('erreur.html',["dVueErreur" => $dVueErreur]);
}
} catch (PseudoDejaPrisException $ex){
$dVueErreur[]="Erreur de création de compte. Le compte existe déjà.";
echo $twig->render('erreur.html',["dVueErreur" => $dVueErreur]);
}catch(Exception $ex){
$dVueErreur[]="Erreur de création de compte.";
echo $twig->render('erreur.html',["dVueErreur" => $dVueErreur]);
}
} else {
echo $twig->render('register.html');
}
}
public function logout(){
$_SESSION=[];
header("Location: .");

@ -2,7 +2,7 @@
namespace model;
abstract class JoueurGateway
class JoueurGateway
{
protected Connection $con;
@ -21,7 +21,7 @@ abstract class JoueurGateway
* @param string $pseudo
* @return array|bool
*/
protected function getFromPseudo(string $pseudo) { // <- PHP 7.4
public function getFromPseudo(string $pseudo) { // <- PHP 7.4
$this->con->executeQuery(
"SELECT id, pseudo FROM Joueur WHERE pseudo = :pseudo;",
[":pseudo" => [$pseudo, $this->con::PARAM_STR]]
@ -29,7 +29,7 @@ abstract class JoueurGateway
return $this->con->getOneResult();
}
protected function insertJoueur(string $pseudo): int{
public function insertJoueur(string $pseudo): int{
if($this->getFromPseudo($pseudo)){
throw new PseudoDejaPrisException();
}else{

@ -22,4 +22,14 @@ class UtilisateurConnecteGateway extends JoueurGateway {
}
return false;
}
public function register(string $email, string $password, int $idjoueur): bool
{
$sql = "INSERT INTO Utilisateur(email, password,idjoueur) VALUES (:email,:password,:idjoueur);";
return $this->con->executeQuery($sql, [
':email' => array($email, \PDO::PARAM_STR),
':password' => array(password_hash($password, PASSWORD_BCRYPT), \PDO::PARAM_STR),
':idjoueur' => array($idjoueur, \PDO::PARAM_INT)
]
);
}
}

@ -12,6 +12,11 @@ class MdlUser extends MdlBase{
public function login(string $username, string $password): bool{
return $this->gw->login($username, $password);
}
public function register(string $username, string $password): bool{
$temp = new JoueurGateway($this->con);
$temp->insertJoueur($username);
return $this->gw->register($username, $password, $temp->getFromPseudo($username)["id"]);
}
/*
public function setPseudo(int $id, string $pseudo): User{
$this->gw->setPseudo($id, $pseudo);

@ -13,12 +13,11 @@
<label for="login">Login</label><br>
<input type="text" name="login" id="login">
<br>
<label for="login">Mot de passe</label><br>
<label for="password">
<label for="password">Mot de passe</label><br>
<input type="password" name="password" id="password">
</label>
<br><br>
<input type="submit" value="Valider">
<input type="submit" value="Valider"><br/>
<a href="register">Creer un compte</a>
{% for error in dErreur %}
<br>
<p style="color: red">

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>S'inscrire</title>
<link rel="stylesheet" href="../css/bootstrap.min.css">
<script>
function checkmdp(){
if(cpassword.value===password.value){
mdpbad.style='';
reg.disabled=false;
} else {
mdpbad.style='visibility: hidden';
reg.disabled=true;
}
}
</script>
</head>
<body>
<h1>S'inscrire</h1>
<center>
<form action="#" method="post">
<label for="login">Login</label><br>
<input type="text" name="login" id="login">
<br>
<label for="password">Mot de passe</label><br>
<input type="password" name="password" id="password"><br>
<label for="cpassword">Confirmer mot de passe</label><br>
<input type="password" name="cpassword" id="cpassword" onchange="">
<p id="mdpbad" style="visibility: hidden">Les mots de passe ne correspondent pas!</p>
<br><br>
<input id="reg" type="submit" value="Valider">
{% for error in dErreur %}
<br>
<p style="color: red">
{{error}}
</p>
{% endfor %}
</form>
</center>
<script src="../js/bootstrap.min.js"></script>
</body>
</html>
Loading…
Cancel
Save