site-accueil-insa/com_ville.php
2023-07-02 20:13:18 +02:00

234 lines
No EOL
4.9 KiB
PHP

<?php
ob_start(); // Start reading html
include "assets/fonts/color.php";
include "script/db.php";
include "assets/scripts/globals.php"
?>
<main>
<?php
/* principe de fonctionnement :
1. si ?ekip=int est dans la requête GET
- on vérifie que l'équipe existe
- si l'équipe n'a pas démarrée, mettre un bouton play pour démarrer la session
- sinon, on affiche l'énigme courante (ordre+1 de la dernière trouvée)
2. si une réponse est envoyée, (requête POST)
- on check si c'est la bonne réponse
- si c'est la bonne réponse, on met est_trouvée à 1 dans la BDD
- si en plus c'est l'énigme finale,
- on récupère le temps unix actuel et calcule le temps total
- on affiche le temps total et l'enregistre dans la BDD
3. si c'est une simple requête GET sans paramètre team,
- on affiche la page d'explications générales
- on met un petit tableau de choix de team pour aller sur la page de sa team
*/
if(isset($_POST["reponse"])){
$ekip = (int)$_POST["ekip"];
// on chope la première énigme non trouvée
$req = $db->prepare("SELECT * FROM ville_epreuve WHERE id_equipe=? AND est_trouvee=0");
$req->execute(array($ekip));
$result = $req->fetch();
// si c'est la bonne réponse
if($result['reponse']===$_POST['reponse']){
$req = $db->prepare("UPDATE ville_epreuve SET est_trouvee=1 WHERE id_equipe=? AND est_trouvee=0 and id=?");
$req->execute(array($ekip,$result['id']));
//si en plus c'est la dernièr, on sort la ptite photo <3
// et on met fin au temps de l'équipe
if($result["est_finale"] == 1){
$req = $db->prepare("SELECT temps FROM ville_equipe WHERE id=?");
$req->execute(array($ekip));
$tps_depart = (int)$req->fetch()['temps'];
$req = $db->prepare("UPDATE ville_equipe SET temps=? WHERE id=?");
$req->execute(array(time()-$tps_depart,$ekip));
header("Location: com_ville.php?ekip=".$ekip);
}
}
}
if(isset($_POST["declencheur_depart"])){
$ekip = (int)$_POST["id_equipe"];
// on stoque le temps où l'équipe part
$req = $db->prepare("UPDATE ville_equipe SET temps=? WHERE id=?");
$req->execute(array(time(),$ekip));
}
if(isset($_GET["ekip"])){
$ekip = (int)$_GET["ekip"];
// check si l'équipe existe
$req = $db->prepare("SELECT * FROM ville_equipe WHERE id=?");
$req->execute(array($ekip));
$result = $req->fetch();
// reload sans param si elle existe pas
if(empty($result)){
header("Location: com_ville.php");
}
// avant tout, si l'équipe a un temps nul, on affiche un message de départ
if($result['temps'] === null){
?>
<div class="zone_txt">
<h2>Chauds pour un ptit tour de la ville les copinous(ettes) ?</h2>
<form method="POST">
<input type="number" name="id_equipe" value="<?= $ekip ?>" hidden>
<input class="btn-equipe" type="submit" name="declencheur_depart" value="Jouer">
</form>
</div>
<?php
}else{
// on chope la première énigme non trouvée
$req = $db->prepare("SELECT * FROM ville_epreuve WHERE id_equipe=? AND est_trouvee=0");
$req->execute(array($ekip));
$result = $req->fetch();
// si yen a pas, on met le message d'arrivée
if(empty($result)){
//message d'arrivée
// calcul du temps
$req = $db->prepare("SELECT temps,nom FROM ville_equipe WHERE id=?");
$req->execute(array($ekip));
$result = $req->fetch();
$heures = intdiv((int)$result['temps'],60*60);
$minutes = intdiv(((int)$result['temps'])%(60*60),60);
$secondes = (((int)$result['temps'])%(60*60)%60);
?>
<div class="zone_txt">
<h2>BRAVO <?=$result['nom']?> VOUS AVEZ FINI !!!!</h2>
<h2><br> Temps : <?=$heures?>h <?=$minutes?>min <?=$secondes?>s</h2>
<img src="assets/img/prez.png" class="prez-ep" id="prez-ep">
</div>
<?php
}else{
// cas de base, on affiche les différents trucs de l'énigme
?>
<div class="zone_txt">
<h2>Epreuve :<h2>
<h3><?= $result['indice']?><h3>
<img src="/assets/img/com_ville/<?=$result['photo']?>">
<?php
if($result['est_finale']==1){
?>
<h5>C'est la dernière épreuve !!!</h5>
<?php
}
?>
<form method="POST">
<input type="number" name="ekip" value="<?= $ekip?>" hidden>
<input type="text" id="reponse" name="reponse">
<input type="submit" value="soumettre la réponse">
</form>
</div>
<?php
}
}
}else{
?>
<div class="zone_txt">
<h1>Com'Ville :D<br> Choisis ton équipe !<h1>
<form method="GET" class="main-form">
<input type="number" name="ekip" id="ekip" placeholder="32">
<label for="ekip">Entres le numéro de ton équipe ici.</label>
<br>
<input type="submit" value="Aller sur la page de mon équipe" class="btn-equipe">
</form>
</div>
<?php } ?>
</main>
<?php
$infopage = ["", "Com'ville", ob_get_clean(), "", "com_ville",/*$titre*/ "Com Ville !"]; //relativepath, pagetitle, pagecontent, pagescript, pagename | cf structure/template.php ligne 2 à 6
include("structure/template.php");
?>