forked from rebillar/site-accueil-insa
231 lines
No EOL
4.8 KiB
PHP
231 lines
No EOL
4.8 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"]){
|
|
|
|
$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>
|
|
</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");
|
|
?>
|