public function Afficher()
 {
     if (isset($_SESSION["compte"]) && !empty($_SESSION["compte"])) {
         if (isset($_SESSION['djun_choisi']) && !empty($_SESSION['djun_choisi'])) {
             if (isset($_POST['histoire']) && !empty($_POST['histoire'])) {
                 $histoire = htmlspecialchars($_POST['histoire']);
                 $histoire = str_replace("'", "'", $histoire);
                 $sql = "UPDATE  \"libertribes\".\"AVATAR\"  SET histoire='" . $histoire . "' WHERE avatar_id=" . $_SESSION['djun_choisi']->id;
                 $result = $this->db_connexion->Requete($sql);
                 if (!$result) {
                     $this->message = $this->traductions["erreur_3"][$_SESSION['lang']];
                     //  erreur: pas d'update effectué dans la BDD
                 } else {
                     $_SESSION['djun_choisi']->histoire = $histoire;
                 }
             } else {
                 $this->message = $this->traductions["erreur_2"][$_SESSION['lang']];
                 //  warning: pas de texte histoire transmis
             }
         } else {
             $this->message = $this->traductions["erreur_1"][$_SESSION['lang']];
             //erreur: pas de D'jun choisi
         }
         parent::Afficher();
     } else {
         header('Location: index.php?page=connexion&erreur=3');
         exit;
     }
 }
 public function Afficher()
 {
     // - On se connecte à la base de données
     parent::ConnecterBD();
     // - on récupère des infos de la session
     $account_id = $_SESSION['account_id'];
     // - on récupère les paramètres
     $message_id = $_GET['no_message'];
     // - On récupère les données
     /*
           $sql  = "SELECT is_read, object, message, date_envoi FROM \"libertribes\".\"MESSAGE\" WHERE account_id = $account_id AND message_id = $message_id AND type = 1 AND is_delete = 0";
           $result = parent::Requete( $sql );
           if ($result)
           {
             $row = pg_fetch_row($result);
             if ($row)
             {
               // - on stocke le message
               $_SESSION['messagerie_lire_id']           = $message_id;
               $_SESSION['messagerie_lire_is_read']      = $row[0];
               $_SESSION['messagerie_lire_object']       = $row[1];
               $_SESSION['messagerie_lire_message']      = $row[2];
               $_SESSION['messagerie_lire_date_envoi']   = $row[3];
               $_SESSION['messagerie_lire_heure_envoi']  = "XXhXX";
              }
           }
     */
     parent::Afficher();
     // - gestion spécifique de la page
 }
 public function Afficher()
 {
     if (isset($_SESSION["compte"]) && !empty($_SESSION["compte"])) {
         //  pour le calcul du niveau mana
         include "utilitaires/calcul_mana.php";
         $account_id = $_SESSION['compte']->id;
         $avatar_name = $_GET["avatar"];
         if (!isset($avatar_name) || empty($avatar_name)) {
             // - redirection vers la page tdb
             header('Location: index.php?page=tdb');
             exit;
         }
         if (!isset($_SESSION['avatars']) || empty($_SESSION['avatars'])) {
             header('Location: index.php?page=tdb&erreur=no_djun');
             exit;
         }
         // - On stocke le djun choisi
         foreach ($_SESSION['avatars'] as $avatar) {
             if ($avatar->nom == $avatar_name) {
                 $_SESSION['djun_choisi'] = $avatar;
                 break;
             }
         }
         //  on indique l'heure de connexion dans la table AVATAR (dernière_connexion)
         $le_moment = date("Y-m-d H:i:s");
         $sql = "UPDATE \"libertribes\".\"AVATAR\"  SET derniere_connexion = '" . $le_moment . "' where avatar_id = '" . $_SESSION["djun_choisi"]->id . "'";
         $this->db_connexion->Requete($sql);
         parent::Afficher();
     } else {
         header('Location: index.php?page=connexion&erreur=3');
         exit;
     }
 }
 public function Afficher()
 {
     if (isset($_GET['erreur'])) {
         $erreur = $_GET['erreur'];
         switch ($erreur) {
             case "1":
                 $this->message = "Vous êtes déjà inscrit avec cet email.";
                 break;
             case "2":
                 $this->message = "Pas d'inscription possible - URL de provenance non valide";
                 break;
             case "3":
                 $this->message = "Erreur: L'enregistrement en base de données n'a pas pu avoir lieu.";
                 break;
             case "4":
                 $this->message = "Problème de mailer: le mail de confirmation n'a pas pu vous être envoyé.";
                 break;
             case "5":
                 $this->message = "Vous vous êtes trompé dans votre URL de confirmation. Réintroduisez l'URL envoyé dans votre barre de navigateur.";
                 break;
             case "6":
                 $this->message = "L'adresse email fournie n'a pas été trouvée, soit à cause d'un problème d'accès à la base de données, soit parce que l'email n'existe pas. Réessayez.";
                 break;
             case "7":
                 $this->message = "La mise à jour de confirmation n'a pas pu être réalisée en BDD. Recommencez";
                 break;
         }
     }
     parent::Afficher();
 }
 public function Afficher()
 {
     /* 
      *  traitement du formulaire d'inscription
      */
     if ($this->token == "OK") {
         // - On controle le formulaire
         $bErreur = 0;
         //$nickname = $_POST["account_nickname"];
         $courriel = $_POST["account_mail"];
         //  crytage du mot de passe, avec un sel définit dans le fichier constantes
         $password = crypt($_POST["account_password"], SALT);
         // - Verifier unicité account mail
         // blocage des inscription
         $sql = "SELECT * FROM \"libertribes\".\"COMPTE\" WHERE email = '" . $courriel . "'";
         $nlines = $this->db_connexion->RequeteNbLignes($sql);
         if ($nlines > 0) {
             $bErreur++;
         }
         // - Une erreur on doit retourné sur le formulaire
         if ($bErreur > 0) {
             header('Location: index.php?page=inscription&erreur=1');
             exit;
         }
         /*
          *  fin de traitement du formulaire d'inscription
          */
         // - On insère les données
         $sql = "INSERT INTO \"libertribes\".\"COMPTE\" ( email, password, confirmation, statut )";
         $sql .= " values ('{$courriel}','{$password}', FALSE, 'offline')";
         if (!$this->db_connexion->Requete($sql)) {
             // L'enregistrement dans la table COMPTE n'a pas pu se faire
             header('Location: index.php?page=inscription&erreur=3');
             exit;
         } else {
             // - On envoi un email  pour la confirmation
             $admin_email = ADMIN_EMAIL;
             $sujet = "Confirmation de votre inscription sur hegoa.eu";
             $cle = substr($password, 5, 8);
             $email_message = "Cher ami d'Hégoa,\nVous êtes bientôt inscrit dans la liste des joueurs et nous en sommes très heureux.\nIl ne vous reste plus qu'à confirmer votre inscription en introduisant l'adresse suivante dans votre barre de navigateur.\n";
             $email_message .= "http://hegoa.eu/index.php?page=inscription_confirmation&email=" . urlencode($courriel) . "&cle=" . urlencode($cle) . "\nLorsque l'opération sera terminée, vous pourrez nous rejoindre dans la plateforme du jeu.\n\nA très bientôt.\n\nHEGOA\n\n";
             $headers = "From: " . $admin_email . "\n";
             //if(!mail($courriel,$sujet,$email_message,$headers)){
             if (false) {
                 //  le mail de confirmation n'a pas pu avoir lieu
                 header('Location: index.php?page=inscription&erreur=4');
                 exit;
             }
         }
         //   tout est OK => affichage
         // - Gestion de l'affichage
         parent::Afficher();
     } else {
         header('Location: index.php?page=inscription&erreur=2');
         exit;
     }
 }
 public function Afficher()
 {
     if (isset($_SESSION["compte"]) && !empty($_SESSION["compte"])) {
         parent::Afficher();
     } else {
         header('Location: index.php?page=connexion&erreur=3');
         exit;
     }
 }
 public function Afficher()
 {
     // si on n'est pas connecté, on ne peut pas afficher cette page
     if (isset($_SESSION['compte'])) {
         parent::Afficher();
     } else {
         header('Location: index.php?page=connexion&erreur=3');
         exit;
     }
 }
 public function Afficher()
 {
     // - On se connecte à la base de données
     parent::ConnecterBD();
     // - on récupère des infos de la session
     $account_id = $_SESSION['account_id'];
     // Ajouter l'avatar_name
     $type = $_GET['type'];
     // On recupère le type de message
     // - Parcours des messages
     $_SESSION['message_compteur'] = 0;
     $_SESSION['message_id'] = array();
     $_SESSION['message_is_read'] = array();
     $_SESSION['message_object'] = array();
     $_SESSION['message_date_envoi'] = array();
     $_SESSION['message_is_delete'] = array();
     $_SESSION['message_type'] = array();
     // - On récupère les données
     $sql = "SELECT message_id, is_read, object, date_envoi, is_delete, type FROM \"libertribes\".\"MESSAGE\" WHERE account_id = {$account_id} ";
     // - Quel type de message ?
     if ($type == "delete") {
         // - Messages supprimés
         $_SESSION['messages_type'] = $type;
         $sql .= " AND is_delete = 1";
     } else {
         if ($type == "send") {
             // - Messages envoyés
             $_SESSION['messages_type'] = $type;
             $sql .= " AND type = 2 AND is_delete = 0";
         } else {
             // - Messages reçus
             $_SESSION['messages_type'] = "receive";
             $sql .= " AND type = 1 AND is_delete = 0";
         }
     }
     // - Tri par date d'envoi
     $sql .= " order by date_envoi";
     $result = parent::Requete($sql);
     if ($result) {
         $iCpt = 0;
         while ($row = pg_fetch_row($result)) {
             // - on stocke les messages
             $_SESSION['message_id'][$iCpt] = $row[0];
             $_SESSION['message_is_read'][$iCpt] = $row[1];
             $_SESSION['message_object'][$iCpt] = $row[2];
             $_SESSION['message_date_envoi'][$iCpt] = $row[3];
             $_SESSION['message_is_delete'][$iCpt] = $row[4];
             $_SESSION['message_type'][$iCpt] = $row[5];
             $iCpt++;
         }
         $_SESSION['message_compteur'] = $iCpt;
     }
     parent::Afficher();
     // - gestion spécifique de la page
 }
 public function Afficher()
 {
     if (isset($_SESSION["compte"]) && !empty($_SESSION["compte"])) {
         if (isset($_GET['erreur']) && $_GET['erreur'] == 1) {
             $this->message = "Pas de D'jun supprimé";
         }
         parent::Afficher();
     } else {
         header('Location: index.php?page=connexion&erreur=3');
         exit;
     }
 }
 public function Afficher()
 {
     // - On initialise la session
     if (isset($_SESSION['compte'])) {
         unset($_SESSION['compte']);
     }
     if (isset($_SESSION['inscription_token'])) {
         unset($_SESSION['inscription_token']);
     }
     $notice = "";
     if (isset($_GET["notice"])) {
         $notice = $_GET['notice'];
     }
     switch ($notice) {
         case "1":
             $this->message = "Votre inscription a été confirmée et vous pouvez vous connecter dès à présent.<br/><br/><a href='?page=connexion'>Connexion</a>";
             break;
     }
     parent::Afficher();
 }
 public function Afficher()
 {
     $_SESSION['actualite_libelle'] = array();
     $_SESSION['actualite_date_creation'] = array();
     // - On récupère les données des djuns
     $sql = "SELECT libelle, date_creation FROM \"libertribes\".\"ACTUALITE\" WHERE type = 'NEWS' order by date_creation DESC";
     $result = $this->db_connexion->Requete($sql);
     if ($result) {
         $iCpt = 0;
         while ($row = pg_fetch_row($result)) {
             // - on stocke les messages
             $_SESSION['actualite_libelle'][$iCpt] = $row[0];
             $_SESSION['actualite_date_creation'][$iCpt] = $row[1];
             $iCpt++;
         }
         $_SESSION['actualite_compteur'] = $iCpt;
     } else {
         $this->message = "Problème d'accès à la table ACTUALITE";
     }
     parent::Afficher();
 }
 public function Afficher()
 {
     if (isset($_SESSION["compte"]) && !empty($_SESSION["compte"])) {
         //   on détermine le nombre d'images associées aux D'juns
         if (!isset($_SESSION['avatar_djun_images']) || empty($_SESSION['avatar_djun_images'])) {
             $dir_images = getcwd() . "/images/djuns/";
             $handle = opendir($dir_images);
             $nombre_images = 0;
             $pattern = "/^djun[0-9]{1,3}.png\$/";
             while ($file = readdir($handle)) {
                 if ($file != "." && $file != ".." && !is_dir($dir_images . $file) && preg_match($pattern, $file) > 0) {
                     $nombre_images++;
                 }
             }
             $_SESSION['avatar_djun_images'] = $nombre_images;
         }
         parent::Afficher();
     } else {
         header('Location: index.php?page=connexion&erreur=3');
         exit;
     }
 }
 public function Afficher()
 {
     // - On se connecte à la base de données
     parent::ConnecterBD();
     // - On controle le formulaire
     $bErreur = 0;
     $courriel = $_POST["account_mail"];
     // - Verifier unicité account mail
     if (parent::RequeteNbLignes("SELECT * FROM \"libertribes\".\"NEWSLETTER\" WHERE email = '{$courriel}'") > 0) {
         $bErreur++;
     }
     // - Une erreur on doit retourné sur le formulaire
     if ($bErreur > 0) {
         header('Location: index.php?page=newsletter&erreur=1');
         exit;
     }
     // - On insère les données
     $sql = "INSERT INTO \"libertribes\".\"NEWSLETTER\" ( email )";
     $sql .= " values ('{$courriel}')";
     parent::Requete($sql);
     // - On envoi un email
     // - Gestion de l'affichage
     parent::Afficher();
 }
 public function Afficher()
 {
     // - gestion spécifique de la page, si on est connecté
     if (isset($_SESSION['compte'])) {
         // - On récupère la variable de l'espace choisi
         if (isset($_GET['espace']) && !empty($_GET['espace'])) {
             $jeu_espace = $_GET['espace'];
             $_SESSION['jeu_espace'] = $jeu_espace;
             if ($jeu_espace == "village") {
                 $jeu_type = $_GET['type'];
                 if ($jeu_type == "vendre") {
                     // - redirection vers la page choix_vente
                     header('Location: index.php?page=choix_vente');
                     exit;
                 }
                 $this->charger_village();
                 if ($jeu_type == "liste") {
                     // - redirection vers la page choix_vente
                     $this->charger_village_liste();
                 }
             }
             if ($jeu_espace == "quete") {
                 $this->charger_quete();
             }
             if ($jeu_espace == "commerce") {
                 $this->charger_commerce();
             }
             if ($jeu_espace == "batiment") {
                 $batiment_type = $_GET['type'];
                 $this->charger_village();
                 if ($batiment_type == "construction") {
                     // - Création de quete
                     $_SESSION['batiment_type'] = $batiment_type;
                     // - redirection vers la page choix_vente
                     $this->charger_batiment_construction();
                 } else {
                     if ($batiment_type == "amelioration") {
                         // - Création de quete
                         $_SESSION['batiment_type'] = $batiment_type;
                         // - redirection vers la page choix_vente
                         $this->charger_batiment_amelioration();
                     } else {
                         $this->charger_batiment();
                     }
                 }
             }
             if ($jeu_espace == "objet") {
                 $this->charger_village();
                 $this->charger_objet();
             }
             if ($jeu_espace == "hua") {
                 $this->charger_village();
                 $this->charger_hua();
             }
             if ($jeu_espace == "magie") {
                 $this->charger_village();
                 $this->charger_magie();
             }
             if ($jeu_espace == "science") {
                 $this->charger_village();
                 $this->charger_science();
             }
             if ($jeu_espace == "etoile") {
                 $this->charger_carte();
             }
             if ($jeu_espace == "colonisation") {
                 $this->coloniser();
             }
         } else {
             $this->charger_carte();
         }
         // - on ajoute le contenu du menu à gauche
         $this->AjouterContenu("contenu_menu", "contenus/page_jeu_menu.php");
         parent::Afficher();
     } else {
         header('Location: index.php?page=connexion&erreur=3');
         exit;
     }
 }
 public function Afficher()
 {
     parent::Afficher();
     // - gestion spécifique de la page
 }
 public function Afficher()
 {
     if (isset($_SESSION['compte'])) {
         if (isset($_GET['action']) && $_GET['action'] == "affiche-etat") {
             $this->affiche_etat();
         }
         if (isset($_GET['action']) && $_GET['action'] == "construire-village") {
             /* on accède à cette option avec deux jeux possibles de variables GET: 
              *     soit les coordonnées séparées et la couleur du terrain (GET['absx'], GET['ordy'], GET['couleur'] )
              *     soit directement le point case et le nom du terrain  ( GET['case'] et GET['terrain'] )
              *     il faut donc harmoniser ça et transmettre à la fonction les variables case et terrain 
              */
             $case = "";
             $terrain = "";
             $nom = "ND";
             //  non défini => pourra être défini plus tard, dans la liste des villages
             if (isset($_GET['nom']) && !empty($_GET['nom'])) {
                 $nom = $_GET['nom'];
             }
             if (isset($_GET['case']) && !empty($_GET['case']) && (isset($_GET['terrain']) && !empty($_GET['terrain']))) {
                 //   cas de case + terrain
                 $case = urldecode($_GET['case']);
                 $terrain = $_GET['terrain'];
             } elseif (isset($_GET['absx']) && !empty($_GET['absx']) && (isset($_GET['ordy']) && !empty($_GET['ordy'])) && (isset($_GET['couleur']) && !empty($_GET['couleur']))) {
                 $case = "(" . $_GET['absx'] . "," . $_GET['ordy'] . ")";
                 foreach ($_SESSION['terrains_possibles'] as $un_terrain) {
                     if ($un_terrain->couleur == "#" . $_GET['couleur']) {
                         $terrain = $un_terrain->nom;
                         break;
                     }
                 }
             } else {
                 //   aucune des 2 possibilités => erreur
                 header("Location: index.php?page=jeu&espace=colonisation");
                 exit;
             }
             $this->construire_village($case, $terrain, $nom);
         }
         if (isset($_GET['action']) && $_GET['action'] == "installer-campement") {
             $this->installer_campement();
         }
         if (isset($_GET['action']) && $_GET['action'] == "livraison") {
             $this->livraison();
         }
         if (isset($_GET['action']) && $_GET['action'] == "espionnage") {
             $this->espionnage();
         }
         if (isset($_GET['action']) && $_GET['action'] == "attaquer") {
             $this->attaquer();
         }
         if (isset($_GET['action']) && $_GET['action'] == "etablir-marche") {
             $this->etablir_marche();
         }
         // - on ajoute le contenu du menu à gauche
         $this->AjouterContenu("contenu_menu", "contenus/page_jeu_menu.php");
         parent::Afficher();
     } else {
         header('Location: index.php?page=connexion&erreur=3');
         exit;
     }
 }
 public function Afficher()
 {
     parent::Afficher();
 }
 public function Afficher()
 {
     // - On se connecte à la base de données
     parent::ConnecterBD();
     // - on récupère des infos de la session
     $account_id = $_SESSION['account_id'];
     // - on récupère les infos de l'url
     $type = "";
     if (!isset($_GET['type'])) {
         $type = "current";
     } else {
         $type = $_GET['type'];
     }
     $_SESSION['quete_type'] = $type;
     // - Parcours des messages
     $_SESSION['quete_titre'] = array();
     $_SESSION['quete_coord_x'] = array();
     $_SESSION['quete_coord_y'] = array();
     $_SESSION['quete_recompense'] = array();
     $_SESSION['quete_is_read'] = array();
     // - On récupère les données
     $sql = "SELECT quete_id, is_read, titre, coord_x, coord_y, recompense FROM \"libertribes\".\"QUETE\" WHERE account_id = {$account_id} and type = '{$type}'";
     $result = parent::Requete($sql);
     if ($result) {
         $iCpt = 0;
         while ($row = pg_fetch_row($result)) {
             // - on stocke les messages
             $_SESSION['quete_id'][$iCpt] = $row[0];
             $_SESSION['quete_is_read'][$iCpt] = $row[1];
             $_SESSION['quete_titre'][$iCpt] = $row[2];
             $_SESSION['quete_coord_x'][$iCpt] = $row[3];
             $_SESSION['quete_coord_y'][$iCpt] = $row[4];
             $_SESSION['quete_recompense'][$iCpt] = $row[5];
             $iCpt++;
         }
         $_SESSION['quete_compteur'] = $iCpt;
     }
     // - Gestion du nb de pages
     $iNbPages = ceil($_SESSION['quete_compteur'] / 5);
     if ($iNbPages == 0) {
         $iNbPages = 1;
     }
     $_SESSION['quete_nb_pages'] = $iNbPages;
     // - Gestion du no de page
     if (!isset($_POST['quete_no_page'])) {
         $_SESSION['quete_no_page'] = 1;
     } else {
         $iPage = $_POST['quete_no_page'];
         if ($iPage < 0) {
             $iPage = 1;
         }
         if ($iPage > $iNbPages) {
             $iPage = $iNbPages;
         }
         $_SESSION['quete_no_page'] = $iPage;
     }
     parent::Afficher();
     // - gestion spécifique de la page
 }