diff --git a/composer.json b/composer.json
new file mode 100755
index 0000000..4bc6dce
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+ "twig/twig": "^2.0"
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100755
index 0000000..e479612
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,202 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "843b04df5fdfe76251025001d66e0fd2",
+ "packages": [
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
+ "reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ },
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "time": "2018-08-06T14:22:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
+ "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2018-09-21T13:07:52+00:00"
+ },
+ {
+ "name": "twig/twig",
+ "version": "v2.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/twigphp/Twig.git",
+ "reference": "a11dd39f5b6589e14f0ff3b36675d06047c589b1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1",
+ "reference": "a11dd39f5b6589e14f0ff3b36675d06047c589b1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-mbstring": "^1.3"
+ },
+ "require-dev": {
+ "psr/container": "^1.0",
+ "symfony/debug": "^2.7",
+ "symfony/phpunit-bridge": "^3.4.19|^4.1.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Twig_": "lib/"
+ },
+ "psr-4": {
+ "Twig\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com",
+ "homepage": "http://fabien.potencier.org",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Armin Ronacher",
+ "email": "armin.ronacher@active-4.com",
+ "role": "Project Founder"
+ },
+ {
+ "name": "Twig Team",
+ "homepage": "https://twig.symfony.com/contributors",
+ "role": "Contributors"
+ }
+ ],
+ "description": "Twig, the flexible, fast, and secure template language for PHP",
+ "homepage": "https://twig.symfony.com",
+ "keywords": [
+ "templating"
+ ],
+ "time": "2018-12-16T10:36:48+00:00"
+ }
+ ],
+ "packages-dev": [],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": [],
+ "platform-dev": []
+}
diff --git a/config.php b/config.php
old mode 100644
new mode 100755
diff --git a/control/login.php b/control/login.php
new file mode 100755
index 0000000..6545f63
--- /dev/null
+++ b/control/login.php
@@ -0,0 +1,33 @@
+load('login.html.twig');
+
+
+echo $template->render(array());
+
+if(isset($_POST["login"], $_POST["pw"]))
+{
+ try {
+ $config = include(SITE_ROOT.'config.php');
+ $bdd = new PDO('mysql:host='.$config['host'].';dbname='.$config['dbName'].';charset=utf8', $config['username'], $config['pw']);
+ } catch (Exception $e) {
+ die('Erreur : '.$e->getMessage());
+ }
+ $req = $bdd->prepare('SELECT * FROM projetphp WHERE login = ? AND mot_de_passe = ?');
+ $req->exexute(array(htmlspecialchars($_POST["login"]),md5($_POST["pw"])));
+ if($req->rowCount() > 0)
+ {
+ $data = $req->fetch();
+ $_SESSION["login"] = $data["login"];
+ $_SESSION["sl"] = $data["security_level"];
+ echo json_encode((object)array("login"=>true));
+ }
+ else
+ echo json_encode((object)array("login"=>false));
+}
+
+?>
diff --git a/control/table.php b/control/table.php
new file mode 100755
index 0000000..a346275
--- /dev/null
+++ b/control/table.php
@@ -0,0 +1,20 @@
+load('table.html.twig');
+
+try {
+ $config = include('config.php');
+ $bdd = new PDO('mysql:host='.$config['host'].';dbname='.$config['dbName'].';charset=utf8', $config['username'], $config['pw']);
+} catch (Exception $e) {
+ die('Erreur : '.$e->getMessage());
+}
+$reponse = $bdd->query('SELECT * FROM projetphp');
+$datas;
+for($i=0;$data = $reponse->fetch();$i++) {
+ $datas[$i] = $data;
+}
+$reponse->closeCursor();
+echo $template->render(array('datas' => $datas));
+
+?>
diff --git a/css/login.css b/css/login.css
new file mode 100755
index 0000000..3f37c80
--- /dev/null
+++ b/css/login.css
@@ -0,0 +1,101 @@
+/*https://codepen.io/colorlib/pen/rxddKy*/
+
+@import url(https://fonts.googleapis.com/css?family=Roboto:300);
+
+.login-page {
+ width: 360px;
+ padding: 8% 0 0;
+ margin: auto;
+}
+.form {
+ position: relative;
+ z-index: 1;
+ background: #FFFFFF;
+ max-width: 360px;
+ margin: 0 auto 100px;
+ padding: 45px;
+ text-align: center;
+ box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
+}
+.form input {
+ font-family: "Roboto", sans-serif;
+ outline: 0;
+ background: #f2f2f2;
+ width: 100%;
+ border: 0;
+ margin: 0 0 15px;
+ padding: 15px;
+ box-sizing: border-box;
+ font-size: 14px;
+}
+.form button {
+ font-family: "Roboto", sans-serif;
+ text-transform: uppercase;
+ outline: 0;
+ background: #4CAF50;
+ width: 100%;
+ border: 0;
+ color: #FFFFFF;
+ font-size: 14px;
+ -webkit-transition: all 0.3 ease;
+ transition: all 0.3 ease;
+ cursor: pointer;
+}
+.form button:hover,.form button:active,.form button:focus {
+ background: #43A047;
+}
+.form .message {
+ margin: 15px 0 0;
+ color: #b3b3b3;
+ font-size: 12px;
+}
+.form .message a {
+ color: #4CAF50;
+ text-decoration: none;
+}
+.form .register-form {
+ display: none;
+}
+.container {
+ position: relative;
+ z-index: 1;
+ max-width: 300px;
+ margin: 0 auto;
+}
+.container:before, .container:after {
+ content: "";
+ display: block;
+ clear: both;
+}
+.container .info {
+ margin: 50px auto;
+ text-align: center;
+}
+.container .info h1 {
+ margin: 0 0 15px;
+ padding: 0;
+ font-size: 36px;
+ font-weight: 300;
+ color: #1a1a1a;
+}
+.container .info span {
+ color: #4d4d4d;
+ font-size: 12px;
+}
+.container .info span a {
+ color: #000000;
+ text-decoration: none;
+}
+.container .info span .fa {
+ color: #EF3B3A;
+}
+body {
+ background: #76b852; /* fallback for old browsers */
+ background: -webkit-linear-gradient(right, #76b852, #8DC26F);
+ background: -moz-linear-gradient(right, #76b852, #8DC26F);
+ background: -o-linear-gradient(right, #76b852, #8DC26F);
+ background: linear-gradient(to left, #76b852, #8DC26F);
+ font-family: "Roboto", sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
diff --git a/function.php b/function.php
old mode 100644
new mode 100755
diff --git a/index.php b/index.php
index f0dd0de..fb20be7 100755
--- a/index.php
+++ b/index.php
@@ -1,97 +1,35 @@
getMessage());
-}
-$reponse = $bdd->query('SELECT * FROM projetphp');
-?>
+define('SITE_ROOT', dirname(__FILE__));
+ini_set('display_errors', 1);
+ini_set('display_startup_errors', 1);
+error_reporting(E_ALL);
-
+session_start();
-
+require_once SITE_ROOT.'/vendor/autoload.php';
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- login |
- Date de nésance |
- email |
- PW |
- slvl |
- |
-
-
-
- fetch()) {
- ?>
-
-
- = ($data["login"]) ?>
- |
-
- = ($data["date_naissance"]) ?>
- |
-
- = ($data["e_mail"]) ?>
- |
-
- = ($data["mot_de_passe"]) ?>
- |
-
- = ($data["security_level"]) ?>
- |
- |
-
- closeCursor();
-?>
-
- |
-
-
-
-
-
-
+else {
+ include './control/table.php';
+}
+
+
+ ?>
diff --git a/login.html b/login.html
new file mode 100644
index 0000000..7d6da45
--- /dev/null
+++ b/login.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/post.php b/post.php
old mode 100644
new mode 100755
index 6f3cb5f..74e7cf8
--- a/post.php
+++ b/post.php
@@ -31,8 +31,8 @@ elseif (isset($_POST["userExist"])) {
}
//INSERT INTO `projetphp` (`login`, `date_naissance`, `e_mail`, `mot_de_passe`, `security_level`) VALUES ('blipblop', '2019-01-09', 'aaaaa@aaa.cc', MD5('sdfqsdfsfd'), '5');
-elseif (isset($_POST["newUser"],$_POST["datene"], $_POST["email"], $_POST["pw"], $_POST["sl"]) && $_POST["newUser"] == "true") {
- if(preg_match($loginPatern, $_POST["login"]) && preg_match($emailPatern, $_POST[email]) && preg_match($pwPatern, $_POST["pw"]))
+elseif (isset($_POST["newUser"],$_POST["datene"], $_POST["email"], $_POST["pw"]) && $_POST["newUser"] == "true") {
+ if(preg_match($loginPatern, $_POST["login"]) && preg_match($emailPatern, $_POST["email"]) && preg_match($pwPatern, $_POST["pw"]))
{
if(userExist($_POST["login"]))
{
@@ -40,6 +40,7 @@ elseif (isset($_POST["newUser"],$_POST["datene"], $_POST["email"], $_POST["pw"],
}
else
{
+ $sl = isset($_POST["sl"])?$_POST["sl"]:"1";
$ret["pw"] = md5(htmlspecialchars($_POST["pw"], ENT_QUOTES, 'UTF-8'));
$req = $bdd->prepare('INSERT INTO `projetphp` (`login`, `date_naissance`, `e_mail`, `mot_de_passe`, `security_level`) VALUES (:login, :datene, :email, :pw, :slvl)');
$req->execute(array(
@@ -47,7 +48,7 @@ elseif (isset($_POST["newUser"],$_POST["datene"], $_POST["email"], $_POST["pw"],
'datene' => htmlspecialchars($_POST["datene"], ENT_QUOTES, 'UTF-8'),
'email' => (htmlspecialchars($_POST["email"], ENT_QUOTES, 'UTF-8')),
'pw' => $ret["pw"],
-'slvl' => htmlspecialchars($_POST["sl"], ENT_QUOTES, 'UTF-8'),
+'slvl' => htmlspecialchars($sl, ENT_QUOTES, 'UTF-8'),
));
$req->closeCursor();
$ret["return"] = true;
@@ -60,7 +61,8 @@ elseif (isset($_POST["newUser"],$_POST["datene"], $_POST["email"], $_POST["pw"],
}
//UPDATE `projetphp` SET `security_level` = '6' WHERE `projetphp`.`login` = 'aaazzze';
-else if (isset($_POST["newUser"], $_POST["updatePW"], $_POST["datene"], $_POST["email"], $_POST["pw"], $_POST["sl"], $_POST["login"]) && $_POST["newUser"] == "false") {
+else if (isset($_POST["newUser"], $_POST["updatePW"], $_POST["datene"], $_POST["email"], $_POST["pw"], $_POST["sl"], $_POST["login"])
+ && $_POST["newUser"] == "false" && (isset($_SESSION["login"]) && $_SESSION["login"] == $_POST["login"] || isset($_SESSION["sl"]) && $_SESSION["sl"] == "10")){
if (preg_match($emailPatern, $_POST["email"])) {
if (htmlspecialchars($_POST["updatePW"], ENT_QUOTES, 'UTF-8') == "true" && preg_match($pwPatern, $_POST["pw"])) {
$req = $bdd->prepare('UPDATE `projetphp` SET `date_naissance` = :datene, `e_mail` = :email, `mot_de_passe` = :pw, `security_level` = :sl WHERE `projetphp`.`login` = :login');
diff --git a/script.js b/script.js
old mode 100644
new mode 100755
index e591d5a..97ddf64
--- a/script.js
+++ b/script.js
@@ -26,7 +26,7 @@ $(function() {
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*~~~~~~~~~~~~~~~~INPUT EVENT~~~~~~~~~~~~~~~~*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
- $("#allRecord").on("keyup change", ".pw input", function() {
+ $("body").on("keyup change", ".pw input", function() {
if (passwordPatern.test($(this).val()) || $(this).val() == "") {
$(this).css("background-color", "");
$('div', $(this).parent()).css("display", "none");
@@ -35,7 +35,7 @@ $(function() {
$('div', $(this).parent()).css("display", "block");
}
});
- $("#allRecord").on("keyup change", ".email input", function() {
+ $("body").on("keyup change", ".email input", function() {
if (mailPatern.test($(this).val())) {
$(this).css("background-color", "");
$('div', $(this).parent()).css("display", "none");
@@ -44,7 +44,7 @@ $(function() {
$('div', $(this).parent()).css("display", "block");
}
});
- $("#allRecord").on("keyup change", ".datene :input", function(e) {
+ $("body").on("keyup change", ".datene :input", function(e) {
console.log(e.target.value);
if (datePatern.test($(this).val())) {
$(this).css("background-color", "");
@@ -54,7 +54,8 @@ $(function() {
$('div', $(this).parent()).css("display", "block");
}
});
- $("#allRecord").on("keyup change", ".login :input", function(e) {
+ $("body").on("keyup change", ".login input, input .login", function(e) {
+ console.log("hoo");
login = ltrim($(this).val());
input = $(this);
td = $(this).parent();
@@ -182,7 +183,7 @@ $(function() {
$.post("post.php", dataToSend, function(data) {
try {
if (data.return == true) {
- for (i = (dataToSend["newUser"] ?0:1); i < tds.length - 1; i++) //On change les input en pure html
+ for (i = (dataToSend["newUser"]?0:1); i < tds.length - 1; i++) //On change les input en pure html
{
j = $(tds[i]);
className = j.attr('class');
@@ -200,7 +201,6 @@ $(function() {
} catch (e) {
swal("Oops", "Something went wrong!
" + e, "error");
}
- console.log(data.return)
}, "json");
}
var dataToSend = new Object(); //Objet contenant les données à envoyé
diff --git a/style.css b/style.css
old mode 100644
new mode 100755
index fb4554c..35f12a6
--- a/style.css
+++ b/style.css
@@ -2,7 +2,7 @@
{
cursor: pointer;
}
-.pw div, .login div{
+.pw div, .login div, .infoRules{
display:none;
-moz-border-radius:6px;
diff --git a/test.php b/test.php
new file mode 100644
index 0000000..fb20be7
--- /dev/null
+++ b/test.php
@@ -0,0 +1,35 @@
+ /*SITE_ROOT.'/twig/compilation_cache'*/false,
+));
+
+if(isset($_GET["page"]))
+{
+ switch ($_GET["page"]) {
+ case 'table':
+ include './control/table.php';
+ break;
+ case 'login':
+ include './control/login.php';
+ break;
+ default:
+ include './control/table.php';
+ break;
+ }
+}
+else {
+ include './control/table.php';
+}
+
+
+ ?>
diff --git a/views/footer.html.twig b/views/footer.html.twig
new file mode 100755
index 0000000..e69de29
diff --git a/views/header.html.twig b/views/header.html.twig
new file mode 100755
index 0000000..041e014
--- /dev/null
+++ b/views/header.html.twig
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/views/login.html.twig b/views/login.html.twig
new file mode 100755
index 0000000..45cb7ce
--- /dev/null
+++ b/views/login.html.twig
@@ -0,0 +1,40 @@
+
+
+
+ {% include 'header.html.twig' %}
+
+
+
+
+
+
+
+
diff --git a/views/table.html.twig b/views/table.html.twig
new file mode 100755
index 0000000..065c869
--- /dev/null
+++ b/views/table.html.twig
@@ -0,0 +1,70 @@
+
+
+ {% include 'header.html.twig' %}
+
+
+
+
+
+
+
+ login |
+ Date de nésance |
+ email |
+ PW |
+ slvl |
+ |
+
+
+
+ {% for data in datas %}
+
+
+ {{ data["login"] }}
+ |
+
+ {{ data["date_naissance"] }}
+ |
+
+ {{ data["e_mail"] }}
+ |
+
+ {{ data["mot_de_passe"] }}
+ |
+
+ {{ data["security_level"] }}
+ |
+ |
+
+ {% endfor %}
+
+ |
+
+
+
+
+
+