<?php include "script.php"; $refresh_rate = 15; //refresh rate en seconde (en gros on refresh la page toute les 15sec) if($user['perm'] < 1) { header('Location: deco.php'); } // ajout d'une epreuve if(isset($_POST['add_epreuve'])){ //$upload_state prend plusieurs valeurs : // 1 si tout est valide et l'image n'existe pas déjà // 0 si une verification a invalidé le fichier // 2 si l'image existe déjà mais l'upload est valide, on va alors utiliser le nom pour la bdd $file_name = null; if($_FILES["file"]["error"] != 4){ $EXT_WHITELIST = array("gif","jpg","jpeg","raw","png","svg"); /* gestion des uploads d'images indices */ $target_dir = "../assets/img/com_ville/"; $target_file = $target_dir . basename($_FILES["photo"]["name"]); $upload_state = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // Check if image file is a actual image or fake image $check = $_FILES["photo"]["size"] > pow(2,2);; if($check !== false) { $upload_state = 1; } else { $upload_state = 0; } if (file_exists($target_file)) { $upload_state = 2; } // limite de taille if ($_FILES["photo"]["size"] > pow(2,40)) { $upload_state = 0; } // check le type de fichier if (!in_array($imageFileType,$EXT_WHITELIST)){ $upload_state = 0; } $file_name = ""; switch($upload_state){ case 1: move_uploaded_file($_FILES["photo"]["tmp_name"],$target_file); $file_name = htmlspecialchars($_FILES["photo"]["name"]); break; case 2: move_uploaded_file($_FILES["photo"]["tmp_name"],$target_file); $file_name = htmlspecialchars($_FILES["photo"]["name"]); break; case 0: ?> <script> alert("L'image envoyée n'a pas passées tout les tests de vérifications."); </script> <?php break; } } $_POST['est_finale'] = $_POST['est_finale'] == 'on' ? 1 : 0; $req = $db->prepare("INSERT INTO ville_epreuve(indice,reponse,photo,id_equipe,est_finale,ordre,est_trouvee) VALUES(?,?,?,?,?,?,?)"); $req->execute(array(htmlspecialchars($_POST['indice']), htmlspecialchars($_POST['reponse']), $file_name, (int)htmlspecialchars($_POST['id_equipe']), (int)htmlspecialchars($_POST['est_finale']), (int)htmlspecialchars($_POST['ordre']), 0 )); } //ajout d'une equipe if(isset($_POST['add_equipe'])){ $req = $db->prepare("INSERT INTO ville_equipe(nom,temps) VALUES(?,?)"); $req->execute(array(htmlspecialchars($_POST['nom']),NULL)); } // suppression d'une équipe if(isset($_POST['del_equipe'])){ $req = $db->prepare("DELETE FROM ville_equipe WHERE id=?"); $req->execute(array(htmlspecialchars((int)$_POST['id_ekip']))); } //suppression d'une épreuve if(isset($_POST['del_epreuve'])){ $req = $db->prepare("DELETE FROM ville_epreuve WHERE id=?"); $req->execute(array((int)$_POST['id_epreuve'])); } // reinitialiser la progression d'une equipe, // utile si l'on fait plusieurs sessions if(isset($_POST['reset_ekip'])){ $req = $db->prepare("UPDATE ville_epreuve SET est_trouvee=0 WHERE id_equipe=?"); $req->execute(array(htmlspecialchars((int)$_POST['id_equipe']))); $req = $db->prepare("UPDATE ville_equipe SET temps=NULL WHERE id=?"); $req->execute(array(htmlspecialchars((int)$_POST['id_equipe']))); } if(isset($_POST['copier_chemin'])){ $sql = "INSERT INTO ville_epreuve (id_equipe, indice, reponse, photo, est_finale, ordre) SELECT ?, indice, reponse, photo, est_finale, ordre FROM ville_epreuve WHERE id_equipe = ?"; $stmt = $db->prepare($sql); $stmt->execute([htmlspecialchars((int)$_POST["id_equipe_dst"]), htmlspecialchars((int)$_POST["id_equipe_og"])]); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Admin / Com'ville</title> <link rel="stylesheet" type="text/css" href="com_ville.css" /> </head> <body> <main> <form method="POST" enctype="multipart/form-data"> <input type="text" name="indice" placeholder="indice" class="input_inline"> <input type="text" name="reponse" placeholder="réponse" class="input_inline"> <input type="file" name="photo" placeholder="image.png" id="photo" class="input_inline"> <input type="number" name="id_equipe" id="id_equipe" class="input_inline" value="<?= isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1;?>"> <label for="id_equipe">id de l'équipe</label> <br> <input type="radio" name="est_finale" id="est_finale" class="input_inline"> <label for="est_finale">ultime épreuve</label> <input type="number" name="ordre" id="ordre" class="input_inline"> <label for="ordre">ordre de l'épreuve</label> <input type="submit" name="add_epreuve" value="Ajouter l'épreuve" class="submit_inline"> </form> <hr> <form method="POST"> <input type="text" name="nom" placeholder="nom de l'équipe" class="input_inline"> <input type="submit" name="add_equipe" value="Ajouter l'équipe" class="submit_inline"> </form> <hr> <form method="POST"> <input type="number" name="id_equipe" id="id_equipe" class="input_inline" value="<?= isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1;?>"> <input type="submit" name="reset_ekip" value="Reinitialiser la progression de l'équipe" class="submit_inline"> </form> <hr> <h4>Copier le chemin d'une équipe pour une autre équipe</h4> <form method="POST"> <input type="number" name="id_equipe_og" id="id_equipe_og" class="input_inline" value="<?= isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1;?>"> <label for="id_equipe_og">Equipe d'origine</label> <input type="number" name="id_equipe_dst" id="id_equipe_dst" class="input_inline" value="0"> <label for="id_equipe_dst">Equipe de destination</label> <input type="submit" name="copier_chemin" value="Copier le chemin" class="submit_inline"> </form> <h4>Equipes déjà enregistrées :</h4> <table class="acces"> <?php $req = $db->query('SELECT * FROM ville_equipe'); while($equipe = $req->fetch()) { echo "<th><a href=\"?ekip=".$equipe['id']."\">".htmlspecialchars($equipe['nom'])."(".$equipe['id'].")"."<a></th><wbr>"; } ?> </table> <hr> <?php $ekip = isset($_GET["ekip"]) ? (int)$_GET["ekip"]:1; $req = $db->prepare('SELECT * FROM ville_epreuve WHERE id_equipe=?'); $req->execute(array($ekip)); ?> <form method="POST"> <input type="number" name="ekip" id="id_equipe" placeholder="numéro de l'équipe" class="input_inline"> <label for="ekip">Numéro de l'équipe dont tu veux voir le tableau</label> <input type="submit" name="aff_equipe" value="Afficher le tableau de l'équipe" class="submit_inline"> </form> <table class="acces"> <tr> <th width="10%">ID (db)</th> <th width="70%">Indice</th> <th width="10%">Reponse</th> <th width="10%">Photos</th> <th width="10%">Id_equipe</th> <th width="10%">Est finale</th> <th width="10%">Ordre</th> <th width="10%">Est trouvée</th> <th width="10%">Action</th> </tr> <?php while($epreuve = $req->fetch()) { ?> <tr> <td><?= $epreuve['id'] ?></td> <td><?= $epreuve['indice'] ?></td> <td><?= $epreuve['reponse'] ?></td> <td><?php if(isset($epreuve['photo'])) { ?><img src="../assets/img/com_ville/<?= $epreuve['photo'] ?>" style="height: 100px;"><?php } else { echo "<font color='red'>no photos</font>"; }?></td> <td><?= $epreuve['id_equipe'] ?></td> <td><?= $epreuve['est_finale'] == 0 ? "non":"oui" ?></td> <td><?= $epreuve['ordre'] ?></td> <td><?= $epreuve['est_trouvee'] == 0 ? "non":"oui" ?></td> <td> <form method="POST"> <input type="text" name="del_epreuve" value="del_epreuve" hidden> <input type="number" value="<?=$epreuve['id']?>" name="id_epreuve" hidden> <input type="submit" value="supprimer"> </form> </td> </tr> <?php } ?> </table> <?php ?> </main> </body> </html>