Commit 47bac812 authored by Johann Bournazel's avatar Johann Bournazel
Browse files

Interface graphique pour la page de connexion et ajout de l'authentification...

Interface graphique pour la page de connexion et ajout de l'authentification via la base de données.
parent db9d07f6
......@@ -11,13 +11,12 @@ class Routeur {
private $ControleurStatistiques;
public function __construct() {
// $this->ControleurAuthentification = new ControleurAuthentification();
// $this->ControleurStatistiques = new ControleurStatistiques();
$this->ControleurAuthentification = new ControleurAuthentification();
$this->ControleurStatistiques = new ControleurStatistiques();
}
// Redirige un utilisateur
public function redirige() {
//Si on est connecté
if (isset($_GET["replay"])) {
unset($_SESSION["villes"]);
......@@ -41,7 +40,8 @@ class Routeur {
$_SESSION["Auth"] = true;
}
if (isset($_SESSION['Auth'])) {
//Si l'utilisateur c'est déjà connecté sur le site
if (isset($_SESSION['Auth'])) {
if (isset($_POST['stats'])) {
$this->ControleurStatistiques->statistiques();
} else if (isset($_GET["annulerCoup"])) {
......@@ -52,7 +52,15 @@ class Routeur {
$this->ControleurJeu->jeu($_GET["actX"], $_GET["actY"], $_GET["actMauvX"], $_GET["actMauvY"]);
}
} else {
$this->ControleurAuthentification->demandeAuthentification();
if(isset($_POST['pseudo']) && isset($_POST['motDePasse'])){
if($this->ControleurAuthentification->verifieIdentifiants($_POST['pseudo'],$_POST['motDePasse'])){
header('Location: index.php');
}else{
$this->ControleurAuthentification->mauvaisIdentifiants();
}
}else{
$this->ControleurAuthentification->demandeAuthentification();
}
}
}
}
......
......@@ -23,12 +23,16 @@ class ControleurAuthentification
$this->vue->afficheMauvaisIdentifiants();
}
function verifieIdentifiants($username, $password)
function verifieIdentifiants($pseudo, $motDePasse)
{
if ($this->modele->verifieIdentifiants($pseudo, $password)) {
//TODO: set la variable de session contenant l'objet utilisateur.
//Si les identifiants sont valides
if ($this->modele->verifieIdentifiants($pseudo, $motDePasse) == true) {
$_SESSION['Auth'] = true;
$_SESSION['pseudo'] = $pseudo;
header('Location: index.php');
return true;
} else {
$this->mauvaisIdentifiants();
return false;
}
}
}
......
......@@ -56,22 +56,22 @@ class ModeleAuthentification {
//vérifie qu'un pseudo existe dans la table pseudonyme
// post-condition retourne vrai si le pseudo existe sinon faux
// si un problème est rencontré, une exception de type TableAccesException est levée
public function verifieIdentifiants($username, $password) {
public function verifieIdentifiants($pseudo, $motDePasse) {
try {
$statement = $this->connexion->prepare("select * from pseudonyme where pseudo=? and password=?;");
$statement->bindParam(1, $username);
$statement->bindParam(1, $password);
$statement = $this->connexion->prepare("select * from joueurs where pseudo=? and motDePasse=?;");
$statement->bindParam(1, $pseudo);
$statement->bindParam(2, $motDePasse);
$statement->execute();
$result = $statement->fetch(PDO::FETCH_ASSOC);
if ($result["id"] == 1) {
if (count($result) == 2) {
return true;
} else {
return false;
}
} catch (PDOException $e) {
$this->deconnexion();
throw new TableAccesException("problème avec la table pseudonyme");
//throw new TableAccesException("problème avec la table pseudonyme");
}
}
......
<?php
class VueAuthentification{
function afficheDemandeAuthentification(){
header("Content-type: text/html; charset=utf-8");
?>
<html>
<body>
<br/>
<br/>
<form method="post" action="index.php">
Pour commencer, veuillez vous connecter <input type="text" name="pseudo"/>
</br>
</br>
<input type="submit" name="soumettre" value="envoyer"/>
</form>
<br/>
<br/>
function afficheDemandeAuthentification(){
readfile(PATH_VUES."/htmlAuthentification.html");
<?php
}
}
function afficheMauvaisIdentifiants(){
readfile(PATH_VUES."/htmlAuthentificationEchoue.html");
}
}
?>
?>
\ No newline at end of file
@font-face {
font-family: 'caviar'; /*a name to be used later*/
src: url('../fonts/caviar/CaviarDreams.ttf'); /*URL to font*/
}
@font-face {
font-family: 'roboto'; /*a name to be used later*/
src: url('../fonts/roboto/Roboto-Light.ttf'); /*URL to font*/
}
@font-face {
font-family: 'roboto-bold'; /*a name to be used later*/
src: url('../fonts/roboto/Roboto-Regular.ttf'); /*URL to font*/
}
html, body, *{
margin:0;
padding:0;
box-sizing: border-box;
}
html{
background-color:whitesmoke;
}
.flex-container{
display: flex;
justify-content: center;
}
.card{
background-color: #fff;
width: 100%;
//height: 500px;
max-width:445px;
border-radius:1%;
overflow:hidden;
text-align: center;!important;
}
.card-header{
text-align:center;
margin-bottom: 0;
height: 75px;
}
.mg-bottom-35{
margin-top:35px;
}
.header-small{
height:40px;
}
.header-small>h2{
padding-top:3px;
}
.ft-caviar{
font-family: caviar;
}
.bg-blue{
background-color:#727cf5;
}
.bg-error{
background-color:#ff2742;
}
.color-white{
color:#fff;
}
.card-title{
padding-top:20.5px;
font-size: 25px;
}
.sub-title{
font-family: roboto;
font-weight: bold;
font-size:13px;
color: #98a6ad;
margin-bottom: 40px;
max-width: 280px;
margin-right:auto;
margin-left: auto;
}
.title{
font-family: roboto-bold;
margin-top: 40px;
font-size: 16px;
color: #6c757d;
margin-bottom: 10px;
}
.form-group{
}
input[type='text']{
width:85%;
margin-top: 5px;
margin-bottom: 15px;
height:35px;
border: 1px solid #7d83a566;
border-radius:5px;
padding-left: 20px;
}
label{
font-family: roboto;
font-size: 13px;
color: #6c757d;
float: left;
padding-left: 35px;
font-weight: bold;
}
input[type='submit']{
margin-top: 20px;
margin-bottom: 35px;
cursor: pointer;
height: 40px;
width: 150px;
background-color: #727cf5;
color: #fff;
border-radius: 2px;
border: 1px;
border-color: #727cf5;
box-shadow: 0 2px 6px 0 rgba(114,124,245,.5);
}
input[type='submit']:hover{
transition: ease 0.25s ;
background-color: #636cdd;
box-shadow: 0 2px 6px 0 rgba(114,124,245,.9);
}
.bad-credentials{
font-size:13px;
font-family: roboto-bold;
margin-bottom: 30px;
}
.color-error{
color: #ff2742;
}
.indication{
font-size: 11px;
font-family: Roboto;
word-wrap: break-word;
}
\ No newline at end of file
You may use the materials in this file without restriction to develop your apps and to use in your apps.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment