moved things

This commit is contained in:
2024-10-23 21:45:15 +02:00
parent 3fc8d2fd74
commit aeca2e31df
21 changed files with 186 additions and 131 deletions

View File

@@ -1,2 +0,0 @@
<?php
$db = null;

View File

@@ -1,14 +0,0 @@
<?php
try {
$host = "localhost";
$user = "root";
$password = "motdepasse";
// Connexion à la bdd
$db = new PDO("mysql:host=$host;dbname=cruddb", $user, $password);
$db->exec('SET NAMES "UTF8"');
} catch (PDOException $e) {
echo 'Erreur : ' . $e->getMessage();
die();
}

View File

@@ -1,11 +0,0 @@
<?php
require_once('connect.php');
if (isset($_GET['id']) && !empty($_GET['id'])) {
$id = strip_tags($_GET['id']);
$sql = "DELETE FROM `users` WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
header('Location: index.php');
}
require_once('close.php');

View File

@@ -1,29 +0,0 @@
<?php
session_start();
// On inclut la connexion à la base
require_once('connect.php');
if (isset($_GET['id']) && !empty($_GET['id'])) {
$id = strip_tags($_GET['id']);
// On écrit notre requête
$sql = 'SELECT * FROM `users` WHERE `id`=:id';
// On prépare la requête
$query = $db->prepare($sql);
// On attache les valeurs
$query->bindValue(':id', $id, PDO::PARAM_STR);
// On exécute la requête
$query->execute();
// On stocke le résultat dans un tableau associatif
$user = $query->fetch();
if (!$user) {
header('Location: index.php');
}
} else {
header('Location: index.php');
}
require_once('close.php');
$vue = "details.twig";
$donnees = array("user" => $user);
require_once('modele/twig.php');

View File

@@ -1,38 +0,0 @@
<?php
require_once('connect.php');
if (isset($_POST)) {
if (
isset($_POST['id']) && !empty($_POST['id'])
&& isset($_POST['login']) && !empty($_POST['login'])
&& isset($_POST['description']) && !empty($_POST['description'])
&& isset($_POST['role']) && !empty($_POST['role'])
) {
$id = strip_tags($_GET['id']);
$login = strip_tags($_POST['login']);
$description = strip_tags($_POST['description']);
$role = strip_tags($_POST['role']);
$sql = "UPDATE `users` SET `login`=:login, `description`=:description,
`role`=:role WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':login', $login, PDO::PARAM_STR);
$query->bindValue(':description', $description, PDO::PARAM_STR);
$query->bindValue(':role', $role, PDO::PARAM_INT);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
header('Location: index.php');
}
}
if (isset($_GET['id']) && !empty($_GET['id'])) {
$id = strip_tags($_GET['id']);
$sql = "SELECT * FROM `users` WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
$result = $query->fetch();
}
require_once('close.php');
$vue = "edit.twig";
$donnees = array("user" => $result);
require_once('modele/twig.php');

View File

@@ -1,18 +0,0 @@
<?php
// On inclut la connexion à la base
require_once('connect.php');
// On écrit notre requête
$sql = 'SELECT * FROM `users`';
// On prépare la requête
$query = $db->prepare($sql);
// On exécute la requête
$query->execute();
// On stocke le résultat dans un tableau associatif
$result = $query->fetchAll(PDO::FETCH_ASSOC);
require_once('close.php');
$vue = "index.twig";
$donnees = array("users" => $result);
require_once('modele/twig.php');

View File

@@ -1,8 +1,8 @@
<?php
/* inclure l'autoloader */
require_once 'vendor/autoload.php';
require_once('../vendor/autoload.php');
/* templates chargés à partir du système de fichiers (répertoire vue) */
$loader = new Twig\Loader\FilesystemLoader('vue');
$loader = new Twig\Loader\FilesystemLoader('../templates');
/* options : prod = cache dans le répertoire cache, dev = pas de cache */
$options_prod = array('cache' => 'cache', 'autoescape' => true);
$options_dev = array('cache' => false, 'autoescape' => true);

View File

@@ -1,5 +1,7 @@
<?php
require_once('connect.php');
require_once('../src/User.php');
if (isset($_POST)) {
if (
isset($_POST['login']) && !empty($_POST['login'])
@@ -15,23 +17,13 @@ if (isset($_POST)) {
$role = strip_tags($_POST['role']);
$firstname = strip_tags($_POST['firstname']);
$description = strip_tags($_POST['description']);
$sql = "INSERT INTO `users` (`login`, `password`, `firstname`, `lastname`, `description`, `role`, `enabled`) VALUES (:login, :password, :firstname, :lastname, :description, :role, :enabled);";
$query = $db->prepare($sql);
$query->bindValue(':login', $login, PDO::PARAM_STR);
$query->bindValue(':password', $password, PDO::PARAM_STR);
$query->bindValue(':firstname', $firstname, PDO::PARAM_STR);
$query->bindValue(':lastname', $lastname, PDO::PARAM_STR);
$query->bindValue(':description', $description, PDO::PARAM_STR);
$query->bindValue(':role', $role, PDO::PARAM_INT);
$query->bindValue(':enabled', 1, PDO::PARAM_INT);
$query->execute();
AddUser($login, $password, $lastname, $role, $firstname, $description);
$_SESSION['message'] = "Utilisateur ajouté avec succès !";
header('Location: index.php');
}
}
require_once('close.php');
$vue = "add.twig";
$vue = "users/add.twig";
$donnees = array();
require_once('modele/twig.php');
require_once('../modele/twig.php');

View File

@@ -0,0 +1,8 @@
<?php
require_once('../src/User.php');
if (isset($_GET['id']) && !empty($_GET['id'])) {
$id = strip_tags($_GET['id']);
DeleteUser($id);
header('Location: index.php');
}

View File

@@ -0,0 +1,20 @@
<?php
session_start();
require_once('../src/User.php');
if (isset($_GET['id']) && !empty($_GET['id'])) {
$id = strip_tags($_GET['id']);
$user = GetUser($id);
if (!$user) {
header('Location: index.php');
}
} else {
header('Location: index.php');
}
$vue = "users/details.twig";
$donnees = array("user" => $user);
require_once('../modele/twig.php');

View File

@@ -0,0 +1,28 @@
<?php
require_once('../src/User.php');
if (isset($_POST)) {
if (
isset($_POST['id']) && !empty($_POST['id'])
&& isset($_POST['login']) && !empty($_POST['login'])
&& isset($_POST['description']) && !empty($_POST['description'])
&& isset($_POST['role']) && !empty($_POST['role'])
) {
$id = strip_tags($_GET['id']);
$login = strip_tags($_POST['login']);
$description = strip_tags($_POST['description']);
$role = strip_tags($_POST['role']);
UpdateUser($id, $login, $description, $role);
header('Location: index.php');
}
}
if (isset($_GET['id']) && !empty($_GET['id'])) {
$id = strip_tags($_GET['id']);
$result = GetUser($id);
}
$vue = "users/edit.twig";
$donnees = array("user" => $result);
require_once('../modele/twig.php');

View File

@@ -0,0 +1,9 @@
<?php
// On inclut la connexion à la base
require_once('../src/User.php');
$vue = "users/index.twig";
$donnees = array("users" => GetUsers());
require_once('../modele/twig.php');

View File

@@ -0,0 +1,25 @@
<?php
function ConnectDataBase()
{
global $db;
try {
$host = "localhost";
$user = "root";
$password = "motdepasse";
// Connexion à la bdd
$db = new PDO("mysql:host=$host;dbname=cruddb", $user, $password);
$db->exec('SET NAMES "UTF8"');
} catch (PDOException $e) {
echo 'Erreur : ' . $e->getMessage();
die();
}
}
function CloseDataBase()
{
global $db;
$db = null;
}

0
tpCrudTwig/src/Role.php Normal file
View File

88
tpCrudTwig/src/User.php Normal file
View File

@@ -0,0 +1,88 @@
<?php
require_once('DataBase.php');
function GetUsers()
{
global $db;
ConnectDataBase();
$sql = 'SELECT * FROM `users`';
$query = $db->prepare($sql);
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
CloseDataBase();
return $result;
}
function GetUser(int $id)
{
global $db;
ConnectDataBase();
$sql = "SELECT * FROM `users` WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
$result = $query->fetch();
CloseDataBase();
return $result;
}
function AddUser(string $login, string $password, string $lastname, int $role, string $firstname, string $description)
{
global $db;
ConnectDataBase();
$sql = "INSERT INTO `users` (`login`, `password`, `firstname`, `lastname`, `description`, `role`, `enabled`) VALUES (:login, :password, :firstname, :lastname, :description, :role, :enabled);";
$query = $db->prepare($sql);
$query->bindValue(':login', $login, PDO::PARAM_STR);
$query->bindValue(':password', $password, PDO::PARAM_STR);
$query->bindValue(':firstname', $firstname, PDO::PARAM_STR);
$query->bindValue(':lastname', $lastname, PDO::PARAM_STR);
$query->bindValue(':description', $description, PDO::PARAM_STR);
$query->bindValue(':role', $role, PDO::PARAM_INT);
$query->bindValue(':enabled', 1, PDO::PARAM_INT);
$query->execute();
CloseDataBase();
}
function UpdateUser(int $id, string $login, string $description, string $role)
{
global $db;
ConnectDataBase();
$sql = "UPDATE `users` SET `login`=:login, `description`=:description,
`role`=:role WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':login', $login, PDO::PARAM_STR);
$query->bindValue(':description', $description, PDO::PARAM_STR);
$query->bindValue(':role', $role, PDO::PARAM_INT);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
CloseDataBase();
}
function DeleteUser(int $id)
{
global $db;
ConnectDataBase();
$sql = "DELETE FROM `users` WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
CloseDataBase();
}

View File

View File

@@ -12,9 +12,6 @@
</head>
<body>
<div class="alert alert-success" role="alert">
A simple success alert—check it out!
</div>
<div class="container text-center bg-light">
<h1 class="">Liste des utilisateurs</h1>
<table class="table table-striped table-bordered table-condensed">