Class Controller.php + JoueurGateway.php + Traitement.php + ajout de l'inscription

ServeurDeTest
Noé GARNIER 2 years ago
parent 6656a90629
commit 5aaf71c766

@ -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,44 @@
<?php
require "../Model/Joueur.php";
require "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 showAll() : void{
$query = "SELECT * FROM Joueur";
$this->con->executeQuery($query, array());
$results=$this->con->getResults();
foreach ($results as $row)
echo $row['email'] . '</br>';
echo $row['pseudo'] . '</br>';
echo $row['mdp'] . '</br>';
echo '</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>

@ -2,5 +2,31 @@
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;
}
}

@ -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>

@ -2,5 +2,68 @@
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>
<title>Login</title>
</head>
<<body>
<body>
<div class="main">
<div class="login-box" id="form">
<div class="top">
<h2>Sign up</h2>
</div>
<form action="../../../../Controller/get.php" method="POST">
<div class="user-box">
<input type="email" id="email" name="email" required="">
<label>Email</label>
</div>
<form action="" method="POST">
<div class="user-box">
<input type="text" id="username" name="username" required="">
<label>Username</label>
@ -36,6 +32,13 @@
<span></span>
Submit
</button>
<a href="SignUp.php" class="right">
<span></span>
<span></span>
<span></span>
<span></span>
Sign up
</a>
</div>
</form>
</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