-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaddkal.php
81 lines (80 loc) · 3.96 KB
/
addkal.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
session_start();
if (!isset($_SESSION["user"])) {
header("Location: connexion.php");
exit;
}
// Formulaire d'ajout de calories
if (!empty($_POST)) {
if (isset($_POST["kalnb"], $_POST["kaldate"]) && !empty($_POST["kalnb"]) && !empty($_POST["kaldate"])) {
// Les valeurs sont existantes et pas vides
$kalnb = (is_numeric($_POST["kalnb"])) ? (int)$_POST["kalnb"] : 0;
$_SESSION["error"] = [];
include "includes/function.php";
// Vérifier le format de la date
if (!validateDate($_POST["kaldate"], 'Y-m-d')) {
$_SESSION["error"][] = "Une erreur est survenue dans le format de la date 📆";
}
// Vérifier le format du nombre de callorie
if ($kalnb < 1 || $kalnb > 8000) {
$_SESSION["error"][] = "Le nombre de calories est incorrect (doit être compris entre 1 et 8000) 🦾";
}
if ($_SESSION["error"] === []) {
$date = $_POST["kaldate"];
$today = new DateTime();
$dateTest = new DateTime($date);
if ($today < $dateTest) {
$_SESSION["error"] = ["La date ne correspond pas (la date doit être aujourd'hui ou dans les 10 derniers jours) 📆"];
}
$today->modify('-10 day');
if ($dateTest < $today) {
$_SESSION["error"] = ["La date ne correspond pas (la date doit être aujourd'hui ou dans les 10 derniers jours) 📆"];
}
if ($_SESSION["error"] === []) {
require "includes/connect.php";
$sql = "SELECT * FROM `calories` WHERE `date` = :datechoisie AND `id_membre` = :id";
$query = $db->prepare($sql);
$query->bindValue(":datechoisie", $date, PDO::PARAM_STR);
$query->bindValue(":id", $_SESSION["user"]["id"], PDO::PARAM_STR);
$query->execute();
$data = $query->fetchAll();
// Condition pour éviter qu'il y ait + de 10k cal.
if($data[0]["calorie"] + $_POST["kalnb"] > 10000) {
$_SESSION["error"] = ["Vous ne pouvez pas manger plus de 10000 calories par jour ?! 😇"];
}
if($_SESSION["error"] === []) {
// Si la date existe déjà : update la donnée
if (!empty($data)) {
$sql = "UPDATE `calories` SET `calorie` = :kalnb WHERE `date`= :datechoisie";
$query = $db->prepare($sql);
$query->bindValue(":kalnb", $data[0]["calorie"] + $_POST["kalnb"], PDO::PARAM_STR);
$query->bindValue(":datechoisie", $date, PDO::PARAM_STR);
$query->execute();
$_SESSION["validinsertcalorie"] = ["Vos données ont bien été sauvegardé ! 🔐"];
header("Location: index.php");
} else {
// Sinon insérer une nouvelle entrée
$sql = "INSERT INTO `calories`(`date`, `calorie`, `id_membre`) VALUES (:kaldate, :kalnb, :idmember)";
$query = $db->prepare($sql);
$query->bindValue(":kaldate", $_POST["kaldate"], PDO::PARAM_STR);
$query->bindValue(":kalnb", $_POST["kalnb"], PDO::PARAM_STR);
$query->bindValue(":idmember", $_SESSION["user"]["id"], PDO::PARAM_STR);
$query->execute();
$_SESSION["validinsertcalorie"] = ["Vos données ont bien été sauvegardé !"];
header("Location: index.php");
}
} else {
header("Location: index.php");
}
} else {
header("Location: index.php");
}
} else {
header("Location: index.php");
}
} else {
$_SESSION["error"] = ["Formulaire invalide"];
header("Location: index.php");
}
}
?>