first commit

This commit is contained in:
Val Jenson
2025-06-14 19:08:52 +02:00
commit f74d81fba4
40 changed files with 2807 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
<?php
session_start();
include 'database.php';
// Vérifier si connecté
if (!isset($_SESSION['pseudo'])) {
header("Location: login.php");
exit;
}
$pseudo = $_SESSION['pseudo'];
// Vérifier si admin
$stmt = $mysqli->prepare("SELECT role FROM utilisateur WHERE pseudo = ?");
$stmt->bind_param("s", $pseudo);
$stmt->execute();
$stmt->bind_result($role);
$stmt->fetch();
$stmt->close();
if ($role !== 'admin') {
header("Location: index.php");
exit;
}
$message = '';
// Si on a soumis le formulaire
if ($_POST) {
$titre = $_POST['titre'];
$adresse = $_POST['adresse'];
$description = $_POST['description'];
// Vérifier que les chose obligatoires sont remplis
if (empty($titre) || empty($adresse)) {
$message = "Oups ! Il faut au moins un titre et une adresse.";
} else {
// Ajouter l'événement en base
$stmt = $mysqli->prepare("INSERT INTO evenement (titre, adresse, description_) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $titre, $adresse, $description);
if ($stmt->execute()) {
$message = "Super ! Ton événement a été créé ! 🎉";
// Vider les champs pour recommencer
$titre = '';
$adresse = '';
$description = '';
} else {
$message = "Erreur : ";
}
$stmt->close();
}
}
// Récupérer les derniers événements créés
function getRecentEvents($mysqli) {
$result = $mysqli->query("SELECT id, titre, adresse, description_ FROM evenement ORDER BY id");
return $result;
}
?>

40
controler/actionLogin.php Normal file
View File

@@ -0,0 +1,40 @@
<?php
include 'database.php';
$message = "";
if(isset($_POST['formsend'])){
$message = "bien recu";
extract($_POST);
$verif = $mysqli->prepare("SELECT mdp, pseudo FROM utilisateur WHERE email = ?");
$verif->bind_param("s",$email);
$verif->execute();
$verif->store_result();
if($verif->num_rows == 1){
$verif->bind_result($hash, $pseudo);
$verif->fetch();
if(password_verify($mdp,$hash)){
$message = "Le mot de passe est correcte, Bienvenue $pseudo !";
$_SESSION['email'] = $email;
$_SESSION['pseudo'] = $pseudo;
header("Location: profil.php");
exit;
}else{
$message = "T trompé, mot de passe incorrect";
}
}else{
$message = "Adresse mail introuvable";
}
}
?>

74
controler/actionModif.php Normal file
View File

@@ -0,0 +1,74 @@
<?php
// actionModif.php
if (!isset($_SESSION['pseudo'])) {
header("Location: login.php");
exit;
}
$pseudo = $_SESSION['pseudo'];
$message = '';
// D'ABORD récupérer les infos utilisateur (OBLIGATOIRE)
$stmt = $mysqli->prepare("SELECT id, nom, prenom, age, email, datecreation FROM utilisateur WHERE pseudo = ?");
$stmt->bind_param("s", $pseudo);
$stmt->execute();
$stmt->bind_result($id, $nom, $prenom, $age, $email, $date);
$stmt->fetch();
$stmt->close();
// ENSUITE traitement du formulaire de modification
if ($_POST) {
$nouveau_nom = $_POST['nom'];
$nouveau_prenom = $_POST['prenom'];
$nouvel_email = $_POST['email'];
$nouvel_age = $_POST['age'];
// Vérification des mots de passe
$mdp_valide = true;
if (!empty($_POST['nouveau_mdp'])) {
if (empty($_POST['confirmer_mdp'])) {
$message = "Veuillez confirmer le nouveau mot de passe.";
$mdp_valide = false;
} elseif ($_POST['nouveau_mdp'] !== $_POST['confirmer_mdp']) {
$message = "Les mots de passe ne correspondent pas.";
$mdp_valide = false;
} elseif (strlen($_POST['nouveau_mdp']) < 6) { // rr
$message = "Le mot de passe doit contenir au moins 6 caractères.";
$mdp_valide = false;
}
}
if ($mdp_valide) {
// Si un nouveau mot de passe est fourni
if (!empty($_POST['nouveau_mdp'])) {
$nouveau_mdp = password_hash($_POST['nouveau_mdp'], PASSWORD_DEFAULT);
$stmt = $mysqli->prepare("UPDATE utilisateur SET nom = ?, prenom = ?, email = ?, age = ?, motdepasse = ? WHERE id = ?");
$stmt->bind_param("sssisi", $nouveau_nom, $nouveau_prenom, $nouvel_email, $nouvel_age, $nouveau_mdp, $id);
} else {
$stmt = $mysqli->prepare("UPDATE utilisateur SET nom = ?, prenom = ?, email = ?, age = ? WHERE id = ?");
$stmt->bind_param("sssii", $nouveau_nom, $nouveau_prenom, $nouvel_email, $nouvel_age, $id);
}
if ($stmt->execute()) {
$message = "Informations mises à jour avec succès !";
// Actualiser les variables pour l'affichage
$nom = $nouveau_nom;
$prenom = $nouveau_prenom;
$email = $nouvel_email;
$age = $nouvel_age;
} else {
$message = "Erreur lors de la mise à jour: " . $mysqli->error;
}
$stmt->close();
}
}
// Compter les événements
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM inscription WHERE id_utilisateur = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($nombre_evenements);
$stmt->fetch();
$stmt->close();
?>

View File

@@ -0,0 +1,40 @@
<?php include 'database.php';
if(isset($_POST['formsend'])){
extract($_POST);
$verif = $mysqli->prepare("SELECT email FROM utilisateur WHERE email = ?");
$verif->bind_param("s",$email);
$verif->execute();
$verif->store_result();
if($verif->num_rows > 0){
echo "Email déja utilisé";
}else{
$verif = $mysqli->prepare("SELECT pseudo FROM utilisateur WHERE pseudo = ?");
$verif->bind_param("s",$pseudo);
$verif->execute();
$verif->store_result();
if($verif->num_rows > 0){
echo "Nom d'utilisateur déja utilisé";
}else{
if($mdp == $cmdp){
// hasher le mot de passe
$hash = password_hash($mdp,PASSWORD_DEFAULT);
$stmt = $mysqli->prepare("INSERT INTO utilisateur (nom, prenom, age, pseudo, mdp, email) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("ssisss",$nom, $prenom, $age, $pseudo, $hash, $email);
$stmt->execute();
echo "Le compte a été crée";
}else{
echo "non t trompé, le mot de passe est différent";
}
}
}
}
?>

View File

@@ -0,0 +1,29 @@
<?php
session_start();
require_once "database.php";
if (!isset($_SESSION['pseudo'])) {
header("Location: login.php");
exit;
}
$id_evenement = $_POST['id_evenement'];
$contenu = $_POST['contenu'];
// récupération du id utilisateur
$recup = $mysqli->prepare("SELECT id FROM utilisateur WHERE pseudo = ?");
$recup->bind_param("s", $_SESSION['pseudo']);
$recup->execute();
$recup->bind_result($id_utilisateur);
$recup->fetch();
$recup->close();
// ajout du commentaire
$insert = $mysqli->prepare("INSERT INTO commentaire (id_utilisateur, id_evenement, contenu) VALUES (?, ?, ?)");
$insert->bind_param("iis", $id_utilisateur, $id_evenement, $contenu);
$insert->execute();
$insert->close();
header("Location: event.php");
exit;

27
controler/database.php Normal file
View File

@@ -0,0 +1,27 @@
<?php
$mysqli = mysqli_connect("dwarves.iut-fbleau.fr", "val", "vali", "val");
// Fonction pour récupérer le rôle d'un utilisateur
function getUserRole($pseudo) {
global $mysqli;
$stmt = $mysqli->prepare("SELECT role FROM utilisateur WHERE pseudo = ?");
$stmt->bind_param("s", $pseudo);
$stmt->execute();
$stmt->bind_result($role);
// Si on trouve l'utilisateur
if ($stmt->fetch()) {
$stmt->close();
return $role;
} else {
$stmt->close();
return null; // Utilisateur pas trouvé
}
}
?>

View File

@@ -0,0 +1,45 @@
<?php
session_start();
require_once "database.php";
// Vérifie que l'utilisateur est connecté et que le formulaire est bien envoyé
if (!isset($_SESSION['pseudo']) || !isset($_POST['id_evenement'])) {
header("Location: event.php");
exit;
}
$pseudo = $_SESSION['pseudo'];
$id_evenement = $_POST['id_evenement'];
// Récupérer l'ID utilisateur
$stmt = $mysqli->prepare("SELECT id FROM utilisateur WHERE pseudo = ?");
$stmt->bind_param("s", $pseudo);
$stmt->execute();
$stmt->bind_result($id_utilisateur);
$stmt->fetch();
$stmt->close();
// Vérifier si déjà inscrit
$check = $mysqli->prepare("SELECT COUNT(*) FROM inscription WHERE id_utilisateur = ? AND id_evenement = ?");
$check->bind_param("ii", $id_utilisateur, $id_evenement);
$check->execute();
$check->bind_result($existe);
$check->fetch();
$check->close();
if ($existe > 0) {
// Déjà inscrit
header("Location: event.php?inscription=deja");
exit;
}
// Sinon on inscrit
$insert = $mysqli->prepare("INSERT INTO inscription (id_utilisateur, pseudo, id_evenement) VALUES (?, ?, ?)");
$insert->bind_param("isi", $id_utilisateur, $pseudo, $id_evenement);
$insert->execute();
$insert->close();
header("Location: event.php?inscription=ok");
exit;
?>

6
controler/logout.php Normal file
View File

@@ -0,0 +1,6 @@
<?php
session_start();
session_destroy();
header("Location: ../views/login.php"); // Redirige vers la page de connexion
exit;
?>

24
controler/menu-profil.php Normal file
View File

@@ -0,0 +1,24 @@
<?php $pseudo = $_SESSION['pseudo'];
$role = getUserRole($pseudo);?>
<link rel="stylesheet" href="../css/profil.css">
<nav class="menu">
<a href="../views/index.php"><img src="../img/logov2.png" alt="Logo 'Vendeur de rêve'" width="175" height="auto"></a>
<ul>
<li class="but1">
<a href="../views/index.php">ACCUEIL</a>
</li>
<li class="but1">
<a href="../views/my_event.php">MES ÉVÉNEMENTS</a>
</li>
<li class="but1">
<a href="../views/profil.php">MON PROFIL</a>
</li>
<?php if ($role === 'admin'): ?>
<li class="but1">
<a href="../views/creator.php">CRÉER ÉVÈNEMENT</a>
</li>
<?php endif; ?>
</ul>
</nav>

24
controler/menunav-inv.php Normal file
View File

@@ -0,0 +1,24 @@
<link rel='stylesheet' type='text/css' media='screen' href='../css/menunav-inv.css'>
<!-- Haut de page -->
<header>
<div class="image">
<a href="../views/index.php"><img src="../img/logov2.png" alt="Logo 'Vendeur de rêve'" width="150" height="auto"></a>
</div>
<!-- Navigation -->
<div class="main">
<nav class="menu">
<ul>
<li><a href="../views/index.php">ACCUEIL</a></li>
<li><a href="../views/contact.php" >CONTACT</a></li>
<li><a href="../views/event.php" >ÉVÈVENEMENT</a></li>
</ul>
</nav>
</div>
<div class="connexion">
<a href="../views/login.php"><button>Connexion</button></a>
<a href="../views/register.php"><button>Inscription</button></a>
</div>
</header>

View File

@@ -0,0 +1,26 @@
<header>
<link rel="stylesheet" href="../css/menunav-user.css">
<div class="image">
<a href="../views/index.php"><img src="../img/logov2.png" alt="Logo 'Vendeur de rêve'" width="175" height="auto"></a>
</div>
<!-- Navigation -->
<div class="main">
<nav class="menu-nav">
<ul>
<li><a href="../views/index.php">ACCUEIL</a></li>
<li><a href="../views/contact.php" >CONTACT</a></li>
<li><a href="../views/event.php" >ÉVÈVENEMENT</a></li>
</ul>
</nav>
</div>
<div class="profil">
<a href="../views/profil.php"><button>Profil</button></a>
<div class="deco">
<a href="../controler/logout.php"><button>Se déconnecter</button></a>
</div>
</div>
</header>