modif pour connection

pull/6/head
mapoint2 1 year ago
parent 1c0eb1c957
commit 2658d466f9

@ -2,6 +2,8 @@
namespace DAL; namespace DAL;
use PDO;
class AdminGateway class AdminGateway
{ {
private $con; private $con;
@ -17,8 +19,8 @@ class AdminGateway
public function login(string $login):array public function login(string $login):array
{ {
try{ try{
$query = 'SELECT mdp,mail FROM Admin WHERE login = :login;'; $query = 'SELECT password,mail FROM Admin WHERE name = :login;';
$this->con->executeQuery($query, array(':flux' => array($login, PDO::PARAM_STR))); $this->con->executeQuery($query, array(':login' => array($login, PDO::PARAM_STR)));
return $this->con->getResults(); return $this->con->getResults();
}catch (\PDOException $e){ }catch (\PDOException $e){
throw new \Exception("PDO error"); throw new \Exception("PDO error");

@ -12,7 +12,7 @@ use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source; use Twig\Source;
use Twig\Template; use Twig\Template;
/* vuephp1.html */ /* connexion.html */
class __TwigTemplate_2ce784f5b9085065b66af58be97997ff169e0f0d71d95a1d280acea4a24fd4e6 extends Template class __TwigTemplate_2ce784f5b9085065b66af58be97997ff169e0f0d71d95a1d280acea4a24fd4e6 extends Template
{ {
private $source; private $source;
@ -165,7 +165,7 @@ utilisation anormale de la vuephp
public function getTemplateName() public function getTemplateName()
{ {
return "vuephp1.html"; return "connexion.html";
} }
public function isTraitable() public function isTraitable()
@ -180,6 +180,6 @@ utilisation anormale de la vuephp
public function getSourceContext() public function getSourceContext()
{ {
return new Source("", "vuephp1.html", "/Applications/MAMP/htdocs/phptwig/templates/vuephp1.html"); return new Source("", "connexion.html", "/Applications/MAMP/htdocs/phptwig/templates/connexion.html");
} }
} }

@ -3,6 +3,7 @@ namespace controleur;
use model\AdminModel; use model\AdminModel;
use model\ArticleModel; use model\ArticleModel;
use model\Parser;
class Controleur class Controleur
{ {
@ -31,13 +32,17 @@ class Controleur
$this->ValidationFormulaire($dVueEreur); $this->ValidationFormulaire($dVueEreur);
break; break;
//mauvaise action case 'vueArticle':
default:
$tabArticle[] = ArticleModel::getArticles(); $tabArticle[] = ArticleModel::getArticles();
$dVueEreur[] = "Erreur d'appel php"; $dVueEreur[] = "Erreur d'appel php";
$dataview = ['Article'=> $tabArticle]; $dataview = ['Article'=> $tabArticle];
echo $twig->render('listArticle.html', ['tabArticle' => $dataview, 'dVueErreur'=>$dVueEreur]); echo $twig->render('listArticle.html', ['tabArticle' => $dataview, 'dVueErreur'=>$dVueEreur]);
break; break;
//mauvaise action
default:
$dVueEreur[] = "Erreur d'appel php";
echo $twig->render('listArticle.html', ['dVueErreur'=>$dVueEreur]);
break;
} }
} catch (\PDOException $e) { } catch (\PDOException $e) {
//si erreur BD, pas le cas ici //si erreur BD, pas le cas ici
@ -52,6 +57,11 @@ class Controleur
exit(0); exit(0);
}//fin constructeur }//fin constructeur
/**
* @throws \Twig\Error\RuntimeError
* @throws \Twig\Error\SyntaxError
* @throws \Twig\Error\LoaderError
*/
public function login(){ public function login(){
global $twig; // nécessaire pour utiliser variables globales global $twig; // nécessaire pour utiliser variables globales
if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($_SERVER['REQUEST_METHOD'] === 'POST') {
@ -63,7 +73,7 @@ class Controleur
if ($admin != null){ if ($admin != null){
$dVue = [ $dVue = [
'data' => ArticleModel::getArticles() 'data' => Parser::getArticles()
]; ];
echo $twig->render('listArticle.html', [ echo $twig->render('listArticle.html', [
'dVue' => $dVue 'dVue' => $dVue
@ -80,7 +90,7 @@ class Controleur
$dVue = [ $dVue = [
'data' => ArticleModel::getArticles() 'data' => ArticleModel::getArticles()
]; ];
echo $twig->render('vuephp1.html', [ echo $twig->render('connexion.html', [
'dVue' => $dVue 'dVue' => $dVue
]); ]);
} }
@ -105,6 +115,6 @@ class Controleur
//'data' => $data, //'data' => $data,
]; ];
echo $twig->render('vuephp1.html', ['dVue' => $dVue, 'dVueEreur' => $dVueEreur]); echo $twig->render('connexion.html', ['dVue' => $dVue, 'dVueEreur' => $dVueEreur]);
} }
}//fin class }//fin class

@ -2,19 +2,24 @@
namespace model; namespace model;
use DAL\AdminGateway;
use DAL\Connection;
use metier\Admin; use metier\Admin;
class AdminModel class AdminModel
{ {
/**
* @throws \Exception
*/
public function connection (string $username, string $mdp){ public function connection (string $username, string $mdp){
//Validation::validationLogin($login); //Validation::validationLogin($login);
//Validation::validationMdp($mdp); //Validation::validationMdp($mdp);
$gwArticle = new AdminGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); $gwArticle = new AdminGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp'));
$lmdp = $gwArticle->login($username); $lmdp = $gwArticle->login($username);
foreach ($lmdp as $motDePasse){ foreach ($lmdp as $motDePasse){
if (password_verify($mdp,$motDePasse['mdp'])){ if (password_verify($mdp,$motDePasse['password']) or $mdp == $motDePasse['password']){
$_SESSION['role'] = 'admin'; $_SESSION['role'] = 'admin';
$_SESSION['pseudo'] = $username; $_SESSION['pseudo'] = $username;
return new Admin($username,$motDePasse['mail']); return new Admin($username,$motDePasse['mail']);

@ -0,0 +1,58 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Login</title>
</head>
<body>
<div align="center">
{% if dVue is defined %}
{% if dVueEreur is defined and dVueEreur|length >0 %}
<h2>ERREUR !!!!!</h2>
{% for value in dVueEreur %}
<p>{{value}}</p>
{% endfor %}
{% endif %}
{% endif %}
<h1>Login</h1>
<form method="post" name="myform" id="myform">
<table>
<tr>
<td>Nom</td>
<td>
<input name="username" value="{{dVue.nom}}" type="text" size="20" />
</td>
</tr>
<tr>
<td>Password</td>
<td>
<input type="password" id="password" name="password" required>
</td>
</tr>
</table>
<table>
<tr>
<td><input type="submit" value="Envoyer" /></td>
<td><input type="reset" value="Rétablir" /></td>
</tr>
</table>
<!-- action !!!!!!!!!! -->
<input type="hidden" name="action" value="login" />
</form>
<a href="listArticle.html">Not a member? Go to Articles</a>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
</head>
<body>

@ -7,7 +7,7 @@
<body> <body>
{% for value in dVue.data %} {% for value in dVue.data %}
<p> <p>
{% for article in value} {% for article in value %}
<p> <p>
{{article}} {{article}}
</p> </p>

@ -1,28 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<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">
<title>Login</title>
</head>
<body>
<h1>Login</h1>
{% if error %}
<p style="color: red;">{{ error }}</p>
{% endif %}
<form action="login" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Login</button>
</form>
<a href="listArticle.html">Not a member? Go to Articles</a>
</body>
</html>
Loading…
Cancel
Save