nathan boileau 2 years ago
commit 239108ed3d

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" serverName="scripted">
<serverData>
<paths name="scripted">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/WEB/src/Main.html" />
</mappings>
</serverdata>
</paths>
</serverData>
</component>
</project>

@ -0,0 +1,7 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="SqlDialectInspection" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SqlNoDataSourceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
</profile>
</component>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="PhpProjectSharedConfiguration" php_language_level="7.4"> <component name="PhpProjectSharedConfiguration" php_language_level="8.1">
<option name="suggestChangeDefaultLanguageLevel" value="false" /> <option name="suggestChangeDefaultLanguageLevel" value="false" />
</component> </component>
</project> </project>

@ -7,7 +7,7 @@ mdp varchar(50)
CREATE TABLE Enigme( CREATE TABLE Enigme(
idEnigme char(5) PRIMARY KEY, idEnigme char(5) PRIMARY KEY,
admin varchar(50) REFERENCES Admin(email), admin varchar(50) REFERENCES Admin(email),
enoncé varchar(250) NOT NULL, enonce varchar(250) NOT NULL,
aide varchar(250), aide varchar(250),
rappel varchar(250), rappel varchar(250),
solution varchar(250) NOT NULL, solution varchar(250) NOT NULL,
@ -22,8 +22,16 @@ pseudo varchar(50),
mdp varchar(50) mdp varchar(50)
); );
CREATE TABLE Game( CREATE TABLE Partie(
idGame char(5) NOT NULL, idPartie char(5) NOT NULL,
joueur varchar(50) REFERENCES Joueur(email),
enigme char(5) REFERENCES Enigme(idEnigme),
points numeric CHECK (points >0),
PRIMARY KEY(idGame, joueur, enigme)
);
CREATE TABLE DetailPartie(
idPartie char(5) NOT NULL,
joueur varchar(50) REFERENCES Joueur(email), joueur varchar(50) REFERENCES Joueur(email),
enigme char(5) REFERENCES Enigme(idEnigme), enigme char(5) REFERENCES Enigme(idEnigme),
points numeric CHECK (points >0), points numeric CHECK (points >0),

@ -0,0 +1,32 @@
<?php
class Validation
{
public function ValidateSet($var) :bool{
if (isset($var)) {
return true;
}
return false;
}
public function ValidateNotEmpty($var) :bool{
if (empty($var)) {
return false;
}
return true;
}
public function ValidateURL(string $url) :bool{
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$url)) {
return false;
}
return true;
}
public function ValidateEmail(string $email) :bool{
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return false;
}
return true;
}
}

@ -0,0 +1,45 @@
<?php
require 'JoueurGateway.php';
class Controller
{
private Connection $con;
/**
* @param Connection $con
*/
function __construct(Connection $con) {
$this->con=$con;
session_start();
try{
$action=$_REQUEST['action'];
switch($action) {
case NULL:
//require ('../View/src/pages/Main.html');
header('Location: http://londres.uca.local/~nogarnier1/Scripted/WEB/View/src/pages/Main.html');
break;
case "login":
$this->login();
break;
}
} catch (PDOException $e)
{
//si erreur BD, pas le cas ici
$dataVueEreur[] = "Erreur inattendue!!! ";
//require(__DIR__.'/../vues/erreur.php'); // ajout du code de la vue ici
}
catch (Exception $e2)
{
$dataVueEreur[] = "Erreur inattendue!!! ";
//require ($rep.$vues['erreur']);
}
}
private function login() {
$gateway=new JoueurGateway($this->con);
$joueur=new Joueur($_REQUEST['email'], $_REQUEST['username'], $_REQUEST['password']);
$gateway->insert($joueur);
$gateway->showAll();
}
}

@ -0,0 +1,52 @@
<?php
class DetailPartieGateway
{
private Connection $con;
/**
* @param Connection $con
*/
public function __construct(Connection $con)
{
$this->con = $con;
}
/**
* @param Connection $con
*/
public function setCon(Connection $con): void
{
$this->con = $con;
}
public function insert(DetailPartie $detailPartie)
{
$query="INSERT INTO DetailPartie VALUES (:idDetailPartie,:joueur,:partie,:enigme,:pointsObtenus,:classement)";
$this->con->executeQuery($query,array(
'idDetailPartie' => array($detailPartie->getIdDetailPartie(),PDO::PARAM_STR),
'joueur' => array($detailPartie->getJoueur(),PDO::PARAM_STR),
'partie' => array($detailPartie->getPartie(),PDO::PARAM_STR),
'enigme' => array($detailPartie->getEnigme(),PDO::PARAM_STR),
'pointsObtenus' => array($detailPartie->getPointsObtenus(),PDO::PARAM_INT),
'classement' => array($detailPartie->getClassement(),PDO::PARAM_INT)
));
}
public function delete(string $partie){
$query="DELETE * FROM DetailPartie WHERE partie=:partie";
$this->con->executeQuery($query,array(
'partie' => array($partie,PDO::PARAM_STR)
));
}
public function showAll(){
$query="SELECT * FROM DetailPartie";
$this->con->executeQuery($query);
$results=$this->con->getResults();
foreach($results as $row)
{
$row['idDetailPartie'];
}
}
}

@ -0,0 +1,73 @@
<?php
require_once "../Config/Connection.php";
require_once "../Model/Enigme.php";
class EnigmeGateway
{
private Connection $con;
/**
* @param Connection $con
*/
public function __construct(Connection $con)
{
$this->con = $con;
}
/**
* @param Connection $con
*/
public function setCon(Connection $con): void
{
$this->con = $con;
}
public function insert(Enigme $enigme)
{
$query = "INSERT INTO Enigme VALUES (:idEnigme,:admin,:enonce,:aide,:rappel,:solution,:test,:tempsDeResolution)";
$this->con->executeQuery($query, array(
':idEnigme' => array($enigme->getIdEnigme(), PDO::PARAM_STR),
':admin' => array($enigme->getAdmin(), PDO::PARAM_STR),
':enonce' => array($enigme->getEnonce(), PDO::PARAM_STR),
':aide' => array($enigme->getAide(), PDO::PARAM_STR),
':rappel' => array($enigme->getRappel(), PDO::PARAM_STR),
':solution' => array($enigme->getSolution(), PDO::PARAM_STR),
':test' => array($enigme->getTest(), PDO::PARAM_STR),
':tempsDeResolution' => array($enigme->getTempsDeResolution(), PDO::PARAM_INT)
));
}
public function delete(string $idEnigme)
{
$query= "DELETE FROM Enigme WHERE idEnigme=:idEnigme";
$this->con->executequery($query, array(
':idEnigme' => array($idEnigme,PDO::PARAM_STR)
));
}
public function findById(string $idEnigme)
{
$query="SELECT * FROM Enigme WHERE idEnigme =:idEnigme";
$this->con->executequery($query,array(
':idEnigme' => array($idEnigme,PDO::PARAM_STR)
));
}
public function showAll(): void
{
$query = "SELECT * FROM Enigme";
$this->con->executeQuery($query);
$results = $this->con->getResults();
foreach ($results as $row) {
echo $row['idEnigme'] . '</br>';
echo $row['admin'] . '</br>';
echo $row['enonce'] . '</br>';
echo $row['aide'] . '</br>';
echo $row['rappel'] . '</br>';
echo $row['solution'] . '</br>';
echo $row['test'] . '</br>';
}
}
}
?>

@ -0,0 +1,51 @@
<?php
require_once "../Model/Joueur.php";
require_once "../Config/Connection.php";
class JoueurGateway
{
private Connection $con;
/**
* @param Connection $con
*/
public function __construct(Connection $con){
$this->con = $con;
}
/**
* @param Connection $con
*/
public function setCon(Connection $con): void
{
$this->con = $con;
}
public function insert(Joueur $joueur) : void{
$query = "INSERT INTO Joueur VALUE (:email,:pseudo,:mdp)";
$this->con->executeQuery($query, array(
':email' => array($joueur->getEmail(),PDO::PARAM_STR),
':pseudo' => array($joueur->getPseudo(),PDO::PARAM_STR),
':mdp' => array($joueur->getMdp(),PDO::PARAM_STR)));
}
public function delete(string $email) : void{
$query = "DELETE FROM Joueur WHERE email=:email";
$this->con->executeQuery($query, array(
':email' => array($email,PDO::PARAM_STR)
));
}
public function showAll() : void{
$query = "SELECT * FROM Joueur";
$this->con->executeQuery($query);
$results=$this->con->getResults();
foreach ($results as $row) {
echo $row['email'] . '</br>';
echo $row['pseudo'] . '</br>';
echo $row['mdp'] . '</br>';
}
}
}

@ -0,0 +1,33 @@
<?php
require_once "../Model/Partie.php";
require_once "../Config/Connection.php";
class PartieGateway
{
private Connection $con;
/**
* @param Connection $con
*/
public function __construct(Connection $con)
{
$this->con = $con;
}
public function insert(Partie $partie){
$query= "INSERT INTO Game VALUES (:idPartie)";
$this->con->executeQuery($query, array(':idPartie' => array($partie->getIdPartie(), PDO::PARAM_STR)));
}
public function delete(string $idPartie){
$query= "DELETE FROM Game WHERE idGame = :idPartie";
$this->con->executeQuery($query, array(':idPartie' => array($idPartie, PDO::PARAM_STR)));
}
public function showAll() : void{
$query= "SELECT * FROM Partie";
$this->con->executeQuery($query);
$results=$this->con->getResults();
foreach ($results as $row) {
echo $row['idPartie'] . '</br>';
}
}
}

@ -0,0 +1,12 @@
<html>
<body>
<?php
require 'Controller.php';
$dsn = 'mysql:host=londres.uca.local; dbname=dbnogarnier1';
$user = 'nogarnier1';
$password = 'achanger';
$con = new Connection($dsn, $user, $password);
$control = new Controller($con)
?>
</body>
</html>

@ -1,6 +0,0 @@
<?php
class Validation
{
}

@ -1,43 +0,0 @@
<html>
<body>
<?php
class Connection extends PDO {
private $stmt;
public function __construct(string $dsn, string $username, string $password) {
parent::__construct($dsn,$username,$password);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }
public function executeQuery(string $query, array $parameters = []) :bool {
$this->stmt = parent::prepare($query);
foreach ($parameters as $name => $value) {
$this->stmt->bindValue($name, $value[0], $value[1]); }
return $this->stmt->execute(); }
public function getResults(): array {
return $this->stmt->fetchall();
}
}
$email = $_POST['email'];
$nom = $_POST['username'];
$mdp = $_POST['password'];
$dsn = 'mysql:host=localhost;dbname=dbnogarnier1';
$user = 'nogarnier1';
$password = 'achanger';
$con=new Connection($dsn, $user, $password);
$query = "INSERT INTO Joueur VALUE (:email,:nom,:mdp)";
$con->executeQuery($query, array(
':email' => array($email,PDO::PARAM_STR),
':nom' => array($nom,PDO::PARAM_STR),
':mdp' => array($mdp,PDO::PARAM_STR)));
$db = new PDO($dsn, $user, $password);
$query= 'SELECT * FROM Joueur';
$stmt=$db->prepare($query);
$stmt->execute();
$results=$stmt->fetchall();
Foreach ($results as $row)
echo $row['email'].'</br>';
?>
</body>
</html>

@ -6,18 +6,18 @@ class DetailPartie
private string $joueur; private string $joueur;
private string $partie; private string $partie;
private string $enigme; private string $enigme;
private string $pointsObtenus; private int $pointsObtenus;
private string $classement; private int $classement;
/** /**
* @param string $idDetailPartie * @param string $idDetailPartie
* @param string $joueur * @param string $joueur
* @param string $partie * @param string $partie
* @param string $enigme * @param string $enigme
* @param string $pointsObtenus * @param int $pointsObtenus
* @param string $classement * @param int $classement
*/ */
public function __construct(string $idDetailPartie, string $joueur, string $partie, string $enigme, string $pointsObtenus, string $classement) public function __construct(string $idDetailPartie, string $joueur, string $partie, string $enigme, int $pointsObtenus, int $classement)
{ {
$this->idDetailPartie = $idDetailPartie; $this->idDetailPartie = $idDetailPartie;
$this->joueur = $joueur; $this->joueur = $joueur;
@ -92,33 +92,33 @@ class DetailPartie
} }
/** /**
* @return string * @return int
*/ */
public function getPointsObtenus(): string public function getPointsObtenus(): int
{ {
return $this->pointsObtenus; return $this->pointsObtenus;
} }
/** /**
* @param string $pointsObtenus * @param int $pointsObtenus
*/ */
public function setPointsObtenus(string $pointsObtenus): void public function setPointsObtenus(int $pointsObtenus): void
{ {
$this->pointsObtenus = $pointsObtenus; $this->pointsObtenus = $pointsObtenus;
} }
/** /**
* @return string * @return int
*/ */
public function getClassement(): string public function getClassement(): int
{ {
return $this->classement; return $this->classement;
} }
/** /**
* @param string $classement * @param int $classement
*/ */
public function setClassement(string $classement): void public function setClassement(int $classement): void
{ {
$this->classement = $classement; $this->classement = $classement;
} }

@ -2,5 +2,68 @@
class Joueur class Joueur
{ {
private string $email;
private string $pseudo;
private string $mdp;
/**
* @param string $email
* @param string $pseudo
* @param string $mdp
*/
public function __construct(string $email, string $pseudo, string $mdp)
{
$this->email = $email;
$this->pseudo = $pseudo;
$this->mdp = $mdp;
}
/**
* @return string
*/
public function getEmail(): string
{
return $this->email;
}
/**
* @param string $email
*/
public function setEmail(string $email): void
{
$this->email = $email;
}
/**
* @return string
*/
public function getPseudo(): string
{
return $this->pseudo;
}
/**
* @param string $pseudo
*/
public function setPseudo(string $pseudo): void
{
$this->pseudo = $pseudo;
}
/**
* @return string
*/
public function getMdp(): string
{
return $this->mdp;
}
/**
* @param string $mdp
*/
public function setMdp(string $mdp): void
{
$this->mdp = $mdp;
}
} }

@ -9,17 +9,13 @@
<script defer src="../../JS/Login.js"></script> <script defer src="../../JS/Login.js"></script>
<title>Login</title> <title>Login</title>
</head> </head>
<<body> <body>
<div class="main"> <div class="main">
<div class="login-box" id="form"> <div class="login-box" id="form">
<div class="top"> <div class="top">
<h2>Sign up</h2> <h2>Sign up</h2>
</div> </div>
<form action="../../../../Controller/get.php" method="POST"> <form action="" method="POST">
<div class="user-box">
<input type="email" id="email" name="email" required="">
<label>Email</label>
</div>
<div class="user-box"> <div class="user-box">
<input type="text" id="username" name="username" required=""> <input type="text" id="username" name="username" required="">
<label>Username</label> <label>Username</label>
@ -36,6 +32,13 @@
<span></span> <span></span>
Submit Submit
</button> </button>
<a href="SignUp.php" class="right">
<span></span>
<span></span>
<span></span>
<span></span>
Sign up
</a>
</div> </div>
</form> </form>
</div> </div>

@ -1,45 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../../CSS/LogSign.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<script defer src="../../JS/SignUp.js"></script>
<title>Login</title>
</head>
<body>
<div class="main">
<div class="login-box" id="form">
<div class="top">
<a class="material-icons" id="home" href="../Home.html" style="font-size:36px;color:white;">home</a>
<h2>Sign up</h2>
</div>
<form>
<div class="user-box">
<input type="text" id="username" name="" required="">
<label>Username</label>
</div>
<div class="user-box">
<input type="email" id="email" name="" required="">
<label>Email</label>
</div>
<div class="user-box">
<input type="password" id="password" name="" required="">
<label>Password</label>
</div>
<div>
<button class="left" type="submit">
<span></span>
<span></span>
<span></span>
<span></span>
Submit
</button>
</div>
</form>
</div>
</div>
</body>
</html>

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../../CSS/LogSign.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<script defer src="../../JS/SignUp.js"></script>
<title>Login</title>
</head>
<body>
<div class="main">
<div class="login-box" id="form">
<div class="top">
<h2>Sign up</h2>
</div>
<form action="../../../../Controller/Traitement.php?action=login" method="POST">
<div class="user-box">
<input type="email" id="email" name="email" required="">
<label>Email</label>
</div>
<div class="user-box">
<input type="text" id="username" name="username" required="">
<label>Username</label>
</div>
<div class="user-box">
<input type="password" id="password" name="password" required="">
<label>Password</label>
</div>
<div>
<button class="left" type="submit">
<span></span>
<span></span>
<span></span>
<span></span>
Submit
</button>
<a href="SignUp.php" class="right">
<span></span>
<span></span>
<span></span>
<span></span>
Sign up
</a>
</div>
</form>
</div>
</div>
</body>
</html>
Loading…
Cancel
Save