@ -1,4 +1,5 @@
<?php
<?php
use Vtiful\Kernel\Excel;
class Controller
class Controller
{
{
@ -11,7 +12,7 @@ class Controller
$this->con=$con;
$this->con=$con;
session_start();
session_start();
try{
try{
global $rep, $vues;
global $rep, $vues, $error ;
$action=$_REQUEST['action'];
$action=$_REQUEST['action'];
switch($action) {
switch($action) {
case NULL:
case NULL:
@ -41,96 +42,111 @@ class Controller
}
}
} catch (PDOException $e)
} catch (PDOException $e)
{
{
require ($rep.$vues['erreurBd']);
$error = $e->getMessage();
require ($rep.$vues['erreur']);
}
}
}
}
private function signUp() {
private function signUp() {
global $rep, $vues, $sel;
global $rep, $vues, $sel, $error ;
try {
try {
$gateway = new JoueurGateway($this->con);
$gateway = new JoueurGateway($this->con);
$validation = new Validation();
$validation = new Validation();
if (! $validation->ValidateEmail($_REQUEST['email'])) {
if (! $validation->ValidateEmail($_REQUEST['email'])) {
$error = "Email invalides.";
throw (new Exception("Email non valide"));
throw (new Exception("Email non valide"));
}
}
if(! $validation->ValidateUsername($_REQUEST['username'])){
if(! $validation->ValidateUsername($_REQUEST['username'])){
$error = "Nom d'utilisateur invalides. Il ne doit pas contenir de caractère spéciaux.";
throw(new Exception("Pseudo non valide"));
throw(new Exception("Pseudo non valide"));
}
}
if(! $validation->ValidatePassword($_REQUEST['password'])){
if(! $validation->ValidatePassword($_REQUEST['password'])){
throw(new InvalidMdpException("Mot de passe non valide"));
$error = "Mots de passe invalides. Il ne doit pas dépasser 100 caractères.";
throw(new Exception("Mot de passe non valide"));
}
}
$password = password_hash($_REQUEST['password']+$selNoHash, PASSWORD_DEFAULT);
$j = $gateway->getJoueurByEmail($_REQUEST['email']);
if ($j != null) {
$error = "Email déjà utilisé.";
throw (new Exception("Email déjà utilisé"));
}
$password = password_hash($_REQUEST['password'], PASSWORD_DEFAULT);
$joueur = new Joueur($_REQUEST['email'], $_REQUEST['username'], $password);
$joueur = new Joueur($_REQUEST['email'], $_REQUEST['username'], $password);
$gateway->insert($joueur);
$gateway->insert($joueur);
$_SESSION['connected'] = 'true';
$_SESSION['connected'] = 'true';
require ($rep.$vues['main']);
require ($rep.$vues['main']);
}catch (Exception $e){
}catch (Exception $e){
require($rep.$vues['erreurSignUp ']);
require($rep.$vues['erreur']);
}
}
}
}
private function login(){
private function login(){
global $rep, $vues, $sel;
global $rep, $vues, $sel, $error ;
try {
try {
$gateway = new JoueurGateway($this->con);
$gateway = new JoueurGateway($this->con);
$joueur = $gateway->getJoueurByEmail($_REQUEST['email']);
$joueur = $gateway->getJoueurByEmail($_REQUEST['email']);
if ($joueur->getEmail() == null){
if ($joueur->getEmail() == null){
throw new JoueurNotFoundException("Joueur introuvable");
$error = "Joueur non trouvé.";
throw new Exception("Joueur introuvable");
}
}
$mdp = $gateway->getMdpByEmail($_REQUEST['email']);
$mdp = $gateway->getMdpByEmail($_REQUEST['email']);
if (password_verify($mdp, $_REQUEST['password']+$sel)){
if (password_verify($mdp, $_REQUEST['password'])){
throw new InvalidMdpException("Mot de passe invalide");
$error = "Mot de passe incorrect.";
throw new Exception("Mot de passe invalide");
}
}
$_SESSION['connected'] = 'true';
$_SESSION['connected'] = 'true';
require ($rep.$vues['main']);
require ($rep.$vues['main']);
}catch (JoueurNotFoundException $e){
}catch (Exception $e){
require($rep.$vues['erreurLoginEmail']);
require($rep.$vues['erreur']);
}catch (InvalidMdpException $m) {
require($rep . $vues['erreurLoginMdp']);
}
}
}
}
// require error page with given message
private function goToPresentation() {
private function goToPresentation() {
global $rep, $vues;
global $rep, $vues, $error ;
try {
try {
require ($rep.$vues['presenation']);
require ($rep.$vues['presenation']);
}catch (Exception $e){
}catch (Exception $e){
require($rep.$vues['erreur404']);
$error = "Erreur Inconnue";
require($rep.$vues['erreur']);
}
}
}
}
private function goToHome() {
private function goToHome() {
global $rep, $vues;
global $rep, $vues, $error ;
try {
try {
require ($rep.$vues['main']);
require ($rep.$vues['main']);
}catch (Exception $e){
}catch (Exception $e){
require($rep.$vues['erreur404']);
$error = "404";
require($rep.$vues['erreur']);
}
}
}
}
private function goToLogin() {
private function goToLogin() {
global $rep, $vues;
global $rep, $vues, $error ;
try {
try {
require ($rep.$vues['login']);
require ($rep.$vues['login']);
}catch (Exception $e){
}catch (Exception $e){
require($rep.$vues['erreur404']);
$error = "404";
require($rep.$vues['erreur']);
}
}
}
}
private function goToSignUp() {
private function goToSignUp() {
global $rep, $vues;
global $rep, $vues, $error ;
try {
try {
require ($rep.$vues['signUp']);
require ($rep.$vues['signUp']);
}catch (Exception $e){
}catch (Exception $e){
require($rep.$vues['erreur404']);
$error = "404";
require($rep.$vues['erreur']);
}
}
}
}
private function goToEnigme() {
private function goToEnigme() {
global $rep, $vues;
global $rep, $vues, $error ;
try {
try {
require ($rep.$vues['enigme']);
require ($rep.$vues['enigme']);
}catch (Exception $e){
}catch (Exception $e){
require($rep.$vues['erreur404']);
$error = "404";
require($rep.$vues['erreur']);
}
}
}
}
}
}