Validation et nettoyage
continuous-integration/drone/push Build is passing Details

ServeurDeTest
Noé GARNIER 2 years ago
parent 6a199bdc2b
commit 3f94ffb4cd

@ -0,0 +1,27 @@
<?php
Class Nettoyage{
public function clean($input)
{
// Supprime les espaces en début et fin de chaîne
$output = trim($input);
// Supprime les balises HTML
$output = strip_tags($output);
// Supprime les caractères spéciaux
// $output = htmlspecialchars($output);
return $output;
}
public function cleanEmail($input){
$output = $this->clean($input);
$output = filter_var($output, FILTER_SANITIZE_EMAIL);
return $output;
}
public function cleanInt($input){
$output = $this->clean($input);
$output = filter_var($output, FILTER_SANITIZE_NUMBER_INT);
return $output;
}
}

@ -5,26 +5,30 @@ class FrontController
{ {
try { try {
global $error, $view, $rep; global $error, $view, $rep;
$nettoyage = new Nettoyage();
session_start(); session_start();
// Check role permissions // Check role permissions
if (isset($_SESSION['role'])) { if (isset($_SESSION['role'])) {
$role = $_SESSION['role']; $role = $nettoyage->clean($_SESSION['role']);
} else { } else {
$role = "visitor"; $role = "visitor";
} }
// Check if action exists // Check if action exists
$action = $_REQUEST['action']; $action = $nettoyage->clean($_REQUEST['action']);
if ($role == "user") { if ($role == "user") {
if ($action == NULL) { if ($action == NULL) {
$_REQUEST['action'] = $action;
new UserController(); new UserController();
} else if (method_exists('UserController', $action) == false) { } else if (method_exists('UserController', $action) == false) {
$error = "Action non valide " . $action; $error = "Action non valide " . $action;
require($rep . $view['erreur']); require($rep . $view['erreur']);
} }
else { else {
$_REQUEST['action'] = $action;
new UserController(); new UserController();
} }
} else { } else {
$_REQUEST['action'] = $action;
new VisitorController(); new VisitorController();
} }
} catch (Exception $e) { } catch (Exception $e) {

@ -3,11 +3,13 @@
class UserController class UserController
{ {
private UserModel $model; private UserModel $model;
private Nettoyage $nettoyage;
function __construct() function __construct()
{ {
try { try {
global $dsn, $rep, $vues, $error; global $dsn, $rep, $vues, $error;
$this->model = new UserModel(); $this->model = new UserModel();
$this->nettoyage = new Nettoyage();
$action = $_REQUEST['action']; $action = $_REQUEST['action'];
//register_event_handler('add_to_queue',array($this,"onAddToQueue")); //register_event_handler('add_to_queue',array($this,"onAddToQueue"));
switch ($action) { switch ($action) {
@ -170,6 +172,7 @@ class UserController
{ {
try { try {
global $rep, $vues, $error; global $rep, $vues, $error;
$num = $this->nettoyage->cleanInt($_REQUEST['num']);
require($rep . $vues['next'].$_REQUEST['num'].".html"); require($rep . $vues['next'].$_REQUEST['num'].".html");
} catch (Exception $e) { } catch (Exception $e) {
$error = "Erreur Inconnue"; $error = "Erreur Inconnue";

@ -5,6 +5,8 @@ class UserModel
private EnigmeGateway $enigme_gateway; private EnigmeGateway $enigme_gateway;
private PartieGateway $partie_gateway; private PartieGateway $partie_gateway;
private UtilisateurGateway $utilisateur_gateway; private UtilisateurGateway $utilisateur_gateway;
private Nettoyage $nettoyage;
private Validation $validation;
function __construct() function __construct()
{ {
@ -13,15 +15,17 @@ class UserModel
$this->enigme_gateway = new EnigmeGateway(); $this->enigme_gateway = new EnigmeGateway();
$this->partie_gateway = new PartieGateway(); $this->partie_gateway = new PartieGateway();
$this->utilisateur_gateway = new UtilisateurGateway(); $this->utilisateur_gateway = new UtilisateurGateway();
$this->nettoyage = new Nettoyage();
$this->validation = new Validation();
} catch (Exception $e) { } catch (Exception $e) {
$error = $e->getMessage(); $error = $e->getMessage();
require($rep . $view['erreur']); require($rep . $view['erreur']);
} }
} }
public function addToQueue(){ public function addToQueue()
echo '1';
if($this->utilisateur_gateway->isAlreadyInqueue($_SESSION['utilisateur']))
{ {
echo '1';
if ($this->utilisateur_gateway->isAlreadyInqueue($_SESSION['utilisateur'])) {
return; return;
} }
echo '2'; echo '2';
@ -29,9 +33,8 @@ class UserModel
echo '3'; echo '3';
$tabEnigme = $this->enigme_gateway->findMultiEnigma(); $tabEnigme = $this->enigme_gateway->findMultiEnigma();
$idNewPartie = $this->partie_gateway->findPartieMaxId(); $idNewPartie = $this->partie_gateway->findPartieMaxId();
$partie=$this->partie_gateway->creerPartieMulti($idNewPartie,$tabEnigme); $partie = $this->partie_gateway->creerPartieMulti($idNewPartie, $tabEnigme);
} } else {
else{
echo '4'; echo '4';
$idPartieInQueue = $this->partie_gateway->findPartieInQueue(); $idPartieInQueue = $this->partie_gateway->findPartieInQueue();
echo '5'; echo '5';
@ -41,21 +44,24 @@ class UserModel
echo '7'; echo '7';
} }
echo '8'; echo '8';
$this->utilisateur_gateway->addToQueue($_SESSION['utilisateur'],$partie); $this->utilisateur_gateway->addToQueue($_SESSION['utilisateur'], $partie);
$userGroup=$this->utilisateur_gateway->findUsersInQueue(); $userGroup = $this->utilisateur_gateway->findUsersInQueue();
//trigger_event('add_to_queue',$userGroup); //trigger_event('add_to_queue',$userGroup);
} }
public function AddUserToQueueEvent(){ public function AddUserToQueueEvent()
$userGroup=$this->utilisateur_gateway->findUsersInQueue();
if($userGroup.count()>=4)
{ {
$userGroup = $this->utilisateur_gateway->findUsersInQueue();
if ($userGroup . count() >= 4) {
$this->utilisateur_gateway->launchGame(); $this->utilisateur_gateway->launchGame();
} }
} }
public function logout() public function logout()
{ {
session_unset();
session_destroy();
$_SESSION = array();
$_SESSION['role'] = 'visitor'; $_SESSION['role'] = 'visitor';
header('Location: index.php'); header('Location: index.php');
} }

@ -3,7 +3,7 @@ require_once('./Config/Config.php');
require_once('./Config/Autoload.php'); require_once('./Config/Autoload.php');
Autoload::charger(); Autoload::charger();
echo "test1\n"; // echo "test1\n";
// try { // try {
// $con = new Connection($dsn); // $con = new Connection($dsn);

Loading…
Cancel
Save