getArticleNb(); // L'énigme bonus est la dernière if (isset($_GET["code"]) && isset($_GET["team"]) && isset($_GET["id"])) { $team_id = htmlspecialchars($_GET["team"]); // Vérification de l'existence du groupe : if ($database->checkTeamExists($team_id)) { $art_id = htmlspecialchars($_GET["id"]); $code = htmlspecialchars($_GET["code"]); $article = $database->getArticle($art_id); // Données renvoyées : $data = [ "valid_qr" => false, "hint" => "" ]; // Vérification de la combinaison ID énigme + code : if (!$database->checkPuzzle($art_id, $code)) { $data["hint"] = $article["hint"]; } else { // On enregistre la réussite dans la table : // Vérification que ce n'est pas déjà enregistré // Si ce n'est pas le cas, on enregistre : if (!$database->isPuzzleSolved($art_id, $team_id)) { $database->solvePuzzle($art_id, $team_id); } // On ajoute l'énigme bonus si toutes les autres sont résolues : $stmt = $database->pdo_teams->prepare("SELECT COUNT(*) FROM solved WHERE team_id == :team_id"); $stmt->bindValue(":team_id", $team_id); $stmt->execute(); if ($stmt->fetchAll()[0]["COUNT(*)"] == $bonus - 1) { $stmt = $database->pdo_teams->prepare("UPDATE teams SET bonus = 1 WHERE id = :team_id"); $stmt->bindValue(":team_id", $team_id); $stmt->execute(); } $data["valid_qr"] = true; } header("Content-Type: application/json; charset=utf-8"); echo json_encode($data); } else { header("Location: index.php"); die(); } } else { header("Location: index.php"); die(); } ?>