/** * Authentifie le numéro de troll et un mot de pas hashé contre la base de donnée, et positionne les variables de * session en conséquence. * @return true si l'authentification a réussie * @return false si elle a échouée (mot de passe incorrecte ou troll inexistant) */ function userLogin($numTroll, $md5pass) { global $db_vue_rm; // On regarde si le troll existe dans la base de données $sql = "SELECT pass_outils_troll, guilde_troll, nom_troll"; $sql .= " FROM trolls WHERE id_troll={$numTroll}"; $result = mysql_query($sql, $db_vue_rm); if ($result == false) { return false; } list($DBmd5pass, $DBAuthGuilde, $DBNomTroll) = mysql_fetch_array($result); if (mysql_affected_rows() > 0 && $DBmd5pass != "" && $DBmd5pass == $md5pass) { $_SESSION['AuthTroll'] = $numTroll; $_SESSION['Auth'] = $md5pass; $_SESSION['AuthGuilde'] = $DBAuthGuilde; $_SESSION['AuthNomTroll'] = $DBNomTroll; if (userIsGuilde() || userIsGroupSpec()) { // Controle de l'administrateur // Remplis la variable de session if (isDbAdministration()) { $_SESSION['admin'] = "authenticated"; } else { $_SESSION['admin'] = "notauthorized"; } $_SESSION['Status'] = "authentified"; setcookie("cookie_id_troll", $_SESSION['AuthTroll'], time() + 31536000); // on garde le cookie 1 an enregistre_connection($_SESSION['AuthTroll']); return true; } } return false; }
function addItemMenu($rm_only, $is_parent, $pos, $name, $tip, $link = "", $target = "") { $flag = true; if ($rm_only) { if (userIsGuilde() || userIsGroupSpec()) { $flag = false; } } else { $flag = false; } if (!$flag) { if (!$is_parent) { echo "menu.addSubItem('{$pos}','{$name}','{$tip}','{$link}','{$target}');"; //echo "menu.addSubItem('$pos','$name','$tip','$link','$target');"; //echo "ssmItems[$pos]=[\"$name\", \"$link\", \"$target\", \"$colspan\", \"$endrow\"];"; // $pos++; } else { //echo "menu.addItem('$pos', '$name', '$tip', null, null);"; echo "menu.addItem('{$pos}', '{$name}', '{$tip}', null, null);"; } } return $pos; }
function TestSecurite() { require "conf.php"; // CONNEXION MYSQL $db_link = @mysql_connect($serveur, $user, $password); if (!$db_link) { echo "Connexion impossible à la base de données <b>{$sql_bdd}</b> sur le serveur <b>{$sql_server}</b><br>Vérifiez les paramètres du fichier conf.php3"; exit; } mysql_select_db($bdd); if ($_SESSION['AuthTroll'] > 0 && userIsGuilde() || $_SESSION['AuthTroll'] > 0 && userIsGroupSpec()) { //Le troll est connecté chez R&M $sql = "select id_troll from ggc_troll where id_troll='{$_SESSION['AuthTroll']}'"; $result = mysql_query($sql, $db_link); echo mysql_error(); list($nb) = mysql_fetch_array($result); if ($nb > 0) { //Le troll est inscrit c'est bon $id_troll = $_SESSION[AuthTroll]; return $id_troll; } else { //Le troll n'est pas inscrit au GGC-> vers page d'inscription echo "<script language='JavaScript'>"; echo "document.location.href='inscription.php'"; echo "</script>"; exit; } mysql_free_result($requete); } else { //Le troll n'est pas connecté R&M echo "<script language='JavaScript'>"; echo "document.location.href='erreur.php'"; echo "</script>"; exit; } }
<?php include_once "../functions_auth.php"; include_once "../admin_functions_db.php"; include_once "firemago_functions.php"; if (userIsGuilde() || userIsGroupSpec()) { $vue = $_REQUEST["Vue"]; $X = $_REQUEST["X"]; $Y = $_REQUEST["Y"]; $N = $_REQUEST["N"]; echo "try { \n"; echo "\n\t\t\t\tfunction piege(){\n\t\t\t\t\t\n\t\t\t\t\t\$('.fm_piege').each(function(index) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\$(this).css('background-color',colorUrg);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif ( \$(this).css('display') == 'none' )\n\t\t\t\t\t\t\t\$(this).show();\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\$(this).hide();\n\t\t\t\t\t\t\n\t\t\t\t\t});\t\n\t\t\t\t\n\t\t\t\t}\t\n\t\t\t\t\t\n\t\t\t"; echo "var anchorPlace = \$('html>body>table>tbody>tr:eq(1)>td>table>tbody>tr>td:eq(1)>p>table:eq(4)>tbody>tr:eq(1)');"; $sql = "SELECT * FROM ggc_piege WHERE abs(X-" . intval($X) . ") < 6 AND abs(Y-" . intval($Y) . ") < 6 AND abs(N-" . intval($N) . ") < 6;"; $pieges = mysql_query($sql, $db_vue_rm); if (mysql_error()) { echo "alert('" . mysql_error() . "');"; } if (mysql_num_rows($pieges) > 0) { while ($piege = mysql_fetch_assoc($pieges)) { $dist = getDist($X, $Y, $N, $piege["X"], $piege["Y"], $piege["N"]); echo "anchorPlace.after('<tr style=\"background-color:red;\"><td width=\"75\">" . $dist . "</td><td>Piège à " . $piege["type"] . "</td><td>" . addslashes($piege["date"] . " " . $piege["texte"]) . "</td><td align=\"center\">" . $piege["X"] . "</td><td align=\"center\">" . $piege["Y"] . "</td><td align=\"center\">" . $piege["N"] . "</td></tr>');"; if ($dist < 2) { echo "\n\t\t\t\t\t\t\t\tif ( \$('#table_piege').length == 0 )\n\t\t\t\t\t\t\t\t\t\$('html>body>table>tbody>tr:eq(1)>td>table>tbody>tr>td:eq(1)>p>table:eq(0)').before('<table id=\"table_piege\" class=\"mh_tdborder\" width=\"50%\"><tr style=\"background-color:red;\" onClick=\"piege();\" onMouseOver=\"this.style.cursor = \\'pointer\\';\"<td align=\"center\" colspan=\"6\">ATTENTION => Pièges à une cases de votre Troll !</td></tr></table><br/>');\n\t\t\t\t\t\t\t "; echo "\$(\"#table_piege\").append('<tr class=\"fm_piege\" style=\"display:none\" align=\"center\"><td>Dist : " . $dist . "</td><td>Type : " . $piege["type"] . "</td><td>" . addslashes($piege["date"] . " " . $piege["texte"]) . "</td><td>X:" . $piege["X"] . "</td><td>Y:" . $piege["Y"] . "</td><td>N" . $piege["N"] . "</td></tr>');"; } } } echo "} catch ( e ) { error ( e, 'Piege error' ); } \n"; }
function afficherRechercheTrollsResultat($id_troll, $nom_troll, $race_troll, $nom_guilde, $niveau_troll, $is_tk_troll, $is_wanted_troll, $is_venge_troll, $x_troll, $y_troll, $z_troll, $limite, $statut_troll, $statut_guilde, $lesTrolls = "") { if (!isset($lesTrolls)) { $lesTrolls = selectDbRechercheTrolls($id_troll, $nom_troll, $race_troll, $nom_guilde, $niveau_troll, $is_tk_troll, $is_wanted_troll, $is_venge_troll, $x_troll, $y_troll, $z_troll, $limite, $statut_troll, $statut_guilde); } $nbTrolls = count($lesTrolls); ?> <br> <table border='0' cellpadding='0' cellspacing='0' class='mh_tdborder' align='center'width='100%'> <tr class='mh_tdtitre'> <td align='center' colspan='15'> <?php echo "Résultat de la recherche de trolls : {$nbTrolls} trouvé(s). Position départ : "; echo "X={$x_troll}/Y={$y_troll}/Z={$z_troll}"; ?> </td> </tr> <?php if ($nbTrolls == 0) { echo "</table>"; return; } ?> <tr class='mh_tdtitre'> <?php if (is_numeric($x_troll) && is_numeric($y_troll) && is_numeric($z_troll)) { echo "<td>Distance en PA</td>"; } ?> <td>Nom</td> <td>Guilde</td> <td>Race</td> <td>Niveau</td> <td>Tk</td> <td>Wanted</td> <td>Chatié</td> <td>Diplo Troll</td> <td>Diplo Guilde</td> <td colspan=3>Position</td> <td>Date de Mise à jour </td> <td>Accès </td> </tr> <?php usort($lesTrolls, "callbackSortDistancePa"); while (list($key, $res) = each($lesTrolls)) { $i++; if ($res[maj_groupe_spec_troll] == 'oui' && !userIsGroupSpec()) { $res[distance_pa] = '?'; $res[x_troll] = '?'; $res[y_troll] = '?'; $res[z_troll] = '?'; } echo "<tr class='mh_tdpage'>"; if (is_numeric($x_troll) && is_numeric($y_troll) && is_numeric($z_troll)) { echo "<td >{$res['distance_pa']}</a></td>"; } echo "<td>"; afficherLien("troll", "fiche", $res[id_troll], "", "", "", htmlentities($res[nom_troll]) . " ({$res['id_troll']})"); echo "</td>"; $lien_guilde = "href='/engine_view.php?guilde={$res['id_guilde']}'"; echo "<td ><a {$lien_guilde}>" . htmlentities($res[nom_guilde]) . "</a></td>"; echo "<td align=center>{$res['race_troll']}</td>"; echo "<td align=center>{$res['niveau_troll']}</td>"; echo "<td align=center>{$res['is_tk_troll']}</td>"; echo "<td align=center>{$res['is_wanted_troll']}</td>"; echo "<td align=center>{$res['is_venge_troll']}</td>"; echo "<td align=center>{$res['statut_troll']}</td>"; echo "<td align=center>{$res['statut_guilde']}</td>"; echo "<td width=10>X={$res['x_troll']}</td>"; echo "<td width=10>Y={$res['y_troll']}</td>"; echo "<td width=40>N={$res['z_troll']}</td>"; echo "<td>{$res['date_troll']}"; if ($res['is_seen_troll'] == 'non') { $title = "Disparu depuis le " . date("d/m H:i", $res['date_troll']) . ""; echo "<img src='images/puce_disparu.gif' title='{$title}'>"; } echo "</td>"; echo "<td>"; afficherLien("troll", "fiche", $res[id_troll]); afficherLien("troll", "vue2d", $res[id_troll]); afficherLien("troll", "gps", $res[id_troll]); afficherLien("troll", "mh_evenements", $res[id_troll]); echo "</td>"; echo "</tr>"; if ($i > 299) { echo "<tr><td colspan='10'><h2><b>Il n'y a que les 300 premiers résultats d'affichés, affinez votre recherche si vous voulez...</b></h2></td></tr>"; break; } } echo "</table>"; echo "</td></tr></table><br>"; }
function parseZone($id_troll, $cX = '', $cY = '', $cZ = '', $nCasesVue = '', $taille_distance_pa = "", $trolls_disparus) { global $db_vue_rm; global $DEV, $quadrillage, $quadrillage_delai_max; if ($DEV) { echo "DEBUG parseZone({$id_troll},{$cX},{$cY},{$cZ},{$nCasesVue},{$taille_distance_pa},{$trolls_disparus}) entré<br>\n"; } if ($taille_distance_pa == "" || $nCasesVue > $taille_distance_pa) { $taille = $nCasesVue; } else { $taille = $taille_distance_pa; } //Labyrinthe ? $laby = 0; if ($cZ == '') { $sql = "SELECT x_troll, y_troll, z_troll, maj_groupe_spec_troll, est_labyrinthe_troll"; $sql .= " FROM trolls"; $sql .= " WHERE id_troll={$id_troll}"; if ($DEV) { echo "DEBUG parseZone() {$sql} <br>"; } $res = mysql_query($sql, $db_vue_rm); echo mysql_error(); if ($res != '') { list($X, $Y, $Z, $grpspec, $laby) = mysql_fetch_array($res); } if ($DEV) { echo "DEBUG parseZone() Le troll à la position {$X},{$Y},{$Z}<br>\n"; } if ($grpspec == 'oui' && !userIsGroupSpec()) { $X = 0; $Y = 0; $Z = 0; } } else { $X = $cX; $Y = $cY; $Z = $cZ; } $miniX = $X - $taille; $maxiX = $X + $taille; $miniY = $Y - $taille; $maxiY = $Y + $taille; $miniZ = $Z - ceil($taille / 2); $maxiZ = $Z + ceil($taille / 2); $miniXv = $X - $nCasesVue; $maxiXv = $X + $nCasesVue; $miniYv = $Y - $nCasesVue; $maxiYv = $Y + $nCasesVue; $miniZv = $Z - ceil($nCasesVue / 2); $maxiZv = $Z + ceil($nCasesVue / 2); /* Brouillard de guerre */ #$sql = "SELECT id_troll_quad, UNIX_TIMESTAMP(last_seen_quad) last_seen_quad, "; #$sql .= " TO_DAYS(NOW()) - TO_DAYS(last_seen_quad) delais, x_min_quad, x_max_quad, y_min_quad,"; #$sql .= " y_max_quad , z_min_quad , z_max_quad"; #$sql .= " FROM quadrillage"; #$sql .= " WHERE "; #$sql .= " x_min_quad <= $maxiX"; #$sql .= " AND x_max_quad >= $miniX"; #$sql .= " AND y_min_quad <= $maxiY"; #$sql .= " AND y_max_quad >= $miniY"; #$sql .= " AND z_min_quad <= $maxiZ"; #$sql .= " AND z_max_quad >= $miniZ"; #if ($DEV) echo "DEBUG parseZone() QUADRILLAGE $sql <br>"; #$res=mysql_query($sql, $db_vue_rm); #echo mysql_error(); #if ($nCasesVue <= 10) { # while ($objet = mysql_fetch_assoc($res)) { # for ($i=$miniXv; $i<=$maxiXv; $i++) { # for ($j=$miniYv; $j<=$maxiYv; $j++) { # for ($k=$miniZv; $k<=$maxiZv; $k++) { # $flag = false; # # if ( ($objet['x_min_quad'] <= $i) && ($objet['x_max_quad'] >= $i) # &&($objet['y_min_quad'] <= $j) && ($objet['y_max_quad'] >= $j) # &&($objet['z_min_quad'] <= $k) && ($objet['z_max_quad'] >= $k) # ) # { # # if ($quadrillage[$i][$j][$k]['delais'] == "") { # $flag = true; # } elseif ($quadrillage[$i][$j][$k]['last_seen'] <= $objet['last_seen_quad']) { # $flag = true; # } # if ($flag) { # $quadrillage[$i][$j][$k]['delais'] = $objet['delais']; # $quadrillage[$i][$j][$k]['last_seen'] = $objet['last_seen_quad']; # $quadrillage[$i][$j][$k]['id_troll'] = $objet['id_troll_quad']; # } # } # } # } # } # } # } # Labyrinthe // $labyrinthe=""; if ($laby == 1) { $sql = "SELECT x_labyrinthe, y_labyrinthe, z_labyrinthe, type_labyrinthe "; $sql .= " FROM labyrinthe"; $sql .= " WHERE x_labyrinthe >= {$miniX}"; $sql .= " AND x_labyrinthe <= {$maxiX}"; $sql .= " AND y_labyrinthe >= {$miniY}"; $sql .= " AND y_labyrinthe <= {$maxiY}"; $sql .= " AND z_labyrinthe >= {$miniZ}"; $sql .= " AND z_labyrinthe <= {$maxiZ}"; if ($DEV) { echo "DEBUG parseZone() labyrinthe {$sql} <br>"; } $res = mysql_query($sql, $db_vue_rm); echo mysql_error(); while (list($oX, $oY, $oZ, $oType) = mysql_fetch_array($res)) { $distance_pa = calcPA($X, $Y, $Z, $oX, $oY, $oZ); $objet = array(type => $oType, z => $oZ, x => $oX, y => $oY, distance_pa => $distance_pa); $labyrinthe[$oX + 100][$oY + 100][] = $objet; } } # TROLLS $date_less_5days = date("Y-m-d H-i-s", mktime(date("H"), date("i"), date("s"), date("m"), date("d") - 5, date("Y"))); // statut_guilde 'neutre','tk','ennemie','amie','alliée' $sql = "SELECT x_troll, y_troll, z_troll, "; $sql .= " id_troll, nom_troll, race_troll, niveau_troll, guilde_troll,"; $sql .= " malade_troll, nom_guilde, statut_guilde,"; $sql .= " is_tk_troll, is_wanted_troll, is_seen_troll, UNIX_TIMESTAMP(date_troll) as date_troll"; $sql .= " FROM trolls,guildes"; $sql .= " WHERE x_troll >= {$miniX}"; $sql .= " AND x_troll <= {$maxiX}"; $sql .= " AND y_troll >= {$miniY}"; $sql .= " AND y_troll <= {$maxiY}"; $sql .= " AND z_troll >= {$miniZ}"; $sql .= " AND z_troll <= {$maxiZ}"; $sql .= " AND est_labyrinthe_troll = '{$laby}'"; $sql .= " AND guilde_troll = id_guilde"; if ($trolls_disparus == "oui") { $sql .= " AND (is_seen_troll = 'oui'"; $sql .= " OR (is_seen_troll = 'non' AND date_troll >'{$date_less_5days}'))"; } else { $sql .= " AND is_seen_troll = 'oui'"; } /*if (!userIsGroupSpec()){ $sql .= " AND maj_groupe_spec_troll <> 'oui'"; }*/ if ($DEV) { echo "DEBUG parseZone() TROLLS {$sql} <br>"; } $res = mysql_query($sql, $db_vue_rm); echo mysql_error(); while (list($tX, $tY, $tZ, $tId, $nom, $race, $level, $IdGuilde, $malade, $nom_guilde, $diplomatie, $is_tk, $is_wanted, $is_seen, $date_troll) = mysql_fetch_array($res)) { if ($malade == '-') { $malade = ""; } $distance_pa = calcPA($X, $Y, $Z, $tX, $tY, $tZ); $objet = array(id => $tId, nom => $nom, z => $tZ, race => $race, level => $level, guilde => $nom_guilde, x => $tX, y => $tY, tk => $is_tk, wanted => $is_wanted, malade => $malade, diplomatie => $diplomatie, guilde_troll => $IdGuilde, is_seen => $is_seen, date_troll => $date_troll, distance_pa => $distance_pa); $trolls[$tX + 100][$tY + 100][] = $objet; } # STREUMS $sql = "SELECT x_monstre, y_monstre, z_monstre, "; $sql .= " id_monstre, nom_monstre"; $sql .= " FROM monstres"; $sql .= " WHERE x_monstre\t >= {$miniX}"; $sql .= " AND x_monstre <= {$maxiX}"; $sql .= " AND y_monstre >= {$miniY}"; $sql .= " AND y_monstre <= {$maxiY}"; $sql .= " AND z_monstre >= {$miniZ}"; $sql .= " AND z_monstre <= {$maxiZ}"; $sql .= " AND is_seen_monstre = 'oui'"; $sql .= " AND est_labyrinthe_monstre = '{$laby}'"; if ($DEV) { echo "DEBUG parseZone() MONSTRES {$sql} <br>"; } $res = mysql_query($sql, $db_vue_rm); echo mysql_error(); while (list($mX, $mY, $mZ, $mId, $mNom) = mysql_fetch_array($res)) { unset($monstre); $mNom = stripslashes(stripslashes($mNom)); $tab = getInfoFromMonstre($mNom); $monstre[famille] = $tab['famille']; $monstre[race] = $tab['race']; $monstre[niveau] = $tab['niv']; // niveau estimé $infos_monstre = $tab; $caracs_moyennes = SelectCaracMoyMonstre($tab['id_race'], $tab['id_template'], $tab['id_age']); //if($caracs_moyennes['niv']!='?' && $caracs_moyennes['niv']!='') // $monstre[niveau]=$caracs_moyennes['niv']; // niveau calculé //else // $monstre[niveau] = $tab['niv']; // niveau estimé / Juste pour info ici $tab_cdm = ""; $monstre[connu] = 'non'; if ($infos_monstre[id_template] != "" && $infos_monstre[id_age] != "") { $tab_cdm = SelectCdMs($infos_monstre[race], $infos_monstre[id_template], $infos_monstre[id_age], "-1", "-1", true); if (count($tab_cdm) > 0) { $monstre[connu] = 'oui'; } if ($taille <= 15) { $monstre[tab_cdm] = $tab_cdm; $capacites_speciales = SelectCapSpe($tab['id_race'], $tab['id_template'], $tab['id_age']); } } $id_troll_gowap = ""; $nom_troll = ""; // On regarde si le monstre est un gowap de la guilde if (preg_match("/Gowap/", $mNom)) { $sql = " SELECT nom_troll, id_troll_gowap"; $sql .= " FROM gowaps, trolls"; $sql .= " WHERE id_troll_gowap = id_troll"; $sql .= " AND id_gowap = {$mId}"; if ($DEV) { echo "DEBUG MONSTRES {$sql} <br>"; } $result2 = mysql_query($sql, $db_vue_rm); echo mysql_error(); if (mysql_num_rows($result2) > 0) { $res2 = mysql_fetch_assoc($result2); $id_troll_gowap = $res2[id_troll_gowap]; $nom_troll = $res2[nom_troll]; } } // On regarde si le monstre est recherché (composant) $recherche = ""; $sql = " SELECT id_composant, priorite_composant, id_race_composant"; $sql .= " FROM composants"; $sql .= " WHERE id_race_composant = '" . addslashes($monstre[race]) . "'"; if ($DEV) { echo "DEBUG MONSTRES {$sql} <br>"; } $result2 = mysql_query($sql, $db_vue_rm); echo mysql_error(); if (mysql_num_rows($result2) > 0) { $res2 = mysql_fetch_assoc($result2); $recherche = $res2[priorite_composant]; } $distance_pa = calcPA($X, $Y, $Z, $mX, $mY, $mZ); $objet = array(id => $mId, nom => $mNom, z => $mZ, x => $mX, y => $mY, race => $monstre[race], famille => $monstre[famille], niveau => $monstre[niveau], connu => $monstre[connu], recherche => $recherche, id_troll_gowap => $id_troll_gowap, nom_troll => $nom_troll, infos_monstre => $infos_monstre, caracs_moyennes => $caracs_moyennes, capacites_speciales => $capacites_speciales, tab_cdm => $monstre[tab_cdm], distance_pa => $distance_pa); $streums[$mX + 100][$mY + 100][] = $objet; } # Mythiques $sql = "SELECT x_monstre, y_monstre, z_monstre, "; $sql .= " id_monstre, nom_monstre"; $sql .= " FROM monstres, best_races"; $sql .= " WHERE nom_monstre like CONCAT('%',nom_race,'%')"; $sql .= " AND commentaire like 'Mythique'"; $sql .= " AND is_seen_monstre = 'oui'"; if ($DEV) { echo "DEBUG parseZone() MYTHIQUES {$sql} <br>"; } $res = mysql_query($sql, $db_vue_rm); echo mysql_error(); while (list($oX, $oY, $oZ, $oId, $oNom) = mysql_fetch_array($res)) { $distance_pa = calcPA($X, $Y, $Z, $oX, $oY, $oZ); $objet = array(id => $oId, nom => $oNom, z => $oZ, x => $oX, y => $oY, distance_pa => $distance_pa); $mythiques[$oX + 100][$oY + 100][] = $objet; } # CAME $sql = "SELECT x_tresor, y_tresor, z_tresor, "; $sql .= " id_tresor, nom_tresor"; $sql .= " FROM tresors"; $sql .= " WHERE x_tresor >= {$miniX}"; $sql .= " AND x_tresor <= {$maxiX}"; $sql .= " AND y_tresor >= {$miniY}"; $sql .= " AND y_tresor <= {$maxiY}"; $sql .= " AND z_tresor >= {$miniZ}"; $sql .= " AND z_tresor <= {$maxiZ}"; $sql .= " AND est_labyrinthe_tresor = '{$laby}'"; if ($DEV) { echo "DEBUG parseZone() TRESOR {$sql} <br>"; } $res = mysql_query($sql, $db_vue_rm); echo mysql_error(); while (list($oX, $oY, $oZ, $oId, $oNom) = mysql_fetch_array($res)) { $distance_pa = calcPA($X, $Y, $Z, $oX, $oY, $oZ); $objet = array(id => $oId, nom => $oNom, z => $oZ, x => $oX, y => $oY, distance_pa => $distance_pa); $came[$oX + 100][$oY + 100][] = $objet; } # LIEUX $sql = "SELECT x_lieu, y_lieu, z_lieu,"; $sql .= " id_lieu, nom_lieu"; $sql .= " FROM lieux"; $sql .= " WHERE x_lieu >= {$miniX}"; $sql .= " AND x_lieu <= {$maxiX}"; $sql .= " AND y_lieu >= {$miniY}"; $sql .= " AND y_lieu <= {$maxiY}"; $sql .= " AND z_lieu >= {$miniZ}"; $sql .= " AND z_lieu <= {$maxiZ}"; $sql .= " AND est_labyrinthe_lieu = '{$laby}'"; if ($DEV) { echo "DEBUG parseZone() LIEU {$sql} <br>"; } $res = mysql_query($sql, $db_vue_rm); echo mysql_error(); while (list($lX, $lY, $lZ, $lId, $lNom) = mysql_fetch_array($res)) { $id_info = ""; $nom_info = ""; $statut_info = ""; $type_info = ""; // On regarde si la taniere est une tanière de la guilde // if (preg_match("/Tani.re de/",$lNom)) { if (preg_match("/.*\\((\\d+)\\)/", $lNom, $match)) { if (is_numeric($match[1])) { $sql = " SELECT nom_guilde, statut_guilde"; $sql .= " FROM guildes"; $sql .= " WHERE id_guilde = {$match['1']}"; $result2 = mysql_query($sql, $db_vue_rm); echo mysql_error(); if (mysql_num_rows($result2) > 0) { $res2 = mysql_fetch_assoc($result2); $id_info = $match[1]; $nom_info = $res2[nom_guilde]; $statut_info = $res2[statut_guilde]; if ($match[1] == ID_GUILDE) { $statut_info = "guilde"; } else { $statut_info = $res2[statut_guilde]; } $type_info = "guilde"; } } } // Recherche du statut dans les trolls if (preg_match("/Tani.re de .*\\((\\d+)\\)/", $lNom, $match)) { if (is_numeric($match[1])) { $sql = " SELECT nom_troll, id_troll, statut_troll, statut_guilde"; $sql .= " FROM trolls, guildes"; $sql .= " WHERE id_troll = {$match['1']}"; $sql .= " AND guilde_troll = id_guilde"; $result2 = mysql_query($sql, $db_vue_rm); echo mysql_error(); if (mysql_num_rows($result2) > 0) { $res2 = mysql_fetch_assoc($result2); $id_info = $res2[id_troll]; $nom_info = $res2[nom_troll]; if ($res2[statut_troll] != "") { $statut_info = $res2[statut_troll]; } else { $statut_info = $res2[statut_guilde]; } $type_info = "troll"; } } } // Recherche dans les tanières de guildes if (preg_match("/Tani.re de/", $lNom)) { $sql = " SELECT nom_troll, id_troll_taniere"; $sql .= " FROM tanieres, trolls"; $sql .= " WHERE id_troll_taniere = id_troll"; $sql .= " AND id_taniere = {$lId}"; if ($DEV) { echo "DEBUG LIEUX tanieres {$sql} <br>"; } $result2 = mysql_query($sql, $db_vue_rm); echo mysql_error(); if (mysql_num_rows($result2) > 0) { $res2 = mysql_fetch_assoc($result2); $id_info = $res2[id_troll_taniere]; $nom_info = $res2[nom_troll]; $statut_info = "guilde"; $type_info = "troll"; } } $distance_pa = calcPA($X, $Y, $Z, $lX, $lY, $lZ); $objet = array(id => $lId, nom => $lNom, z => $lZ, x => $lX, y => $lY, id_info => $id_info, nom_info => $nom_info, statut_info => $statut_info, is_guilde => $is_guilde, type_info => $type_info, distance_pa => $distance_pa); $lieux[$lX + 100][$lY + 100][] = $objet; } # CHAMPIGNONS $sql = "SELECT x_champi, y_champi, z_champi,"; $sql .= " id_champi, nom_champi"; $sql .= " FROM champignons"; $sql .= " WHERE x_champi >= {$miniX}"; $sql .= " AND x_champi <= {$maxiX}"; $sql .= " AND y_champi >= {$miniY}"; $sql .= " AND y_champi <= {$maxiY}"; $sql .= " AND z_champi >= {$miniZ}"; $sql .= " AND z_champi <= {$maxiZ}"; $sql .= " AND is_seen_champi ='oui'"; $sql .= " AND est_labyrinthe_champi = '{$laby}'"; if ($DEV) { echo "DEBUG parseZone() CHAMPI {$sql} <br>"; } $res = mysql_query($sql, $db_vue_rm); echo mysql_error(); while (list($cX, $cY, $cZ, $cId, $cNom) = mysql_fetch_array($res)) { $objet = array(id => $cId, nom => $cNom, z => $cZ, x => $cX, y => $cY); $champi[$cX + 100][$cY + 100][] = array(id => $cId, nom => $cNom, z => $cZ); } # BARONNIES /* $sql = "SELECT x_deb_baronnie, y_deb_baronnie, z_deb_baronnie,"; $sql .= " x_fin_baronnie, y_fin_baronnie, z_fin_baronnie,"; $sql .= " x_trone_baronnie, y_trone_baronnie, z_trone_baronnie,"; $sql .= " nom_baronnie, id_baron_baronnie, id_baronnie,nom_troll as nom_baron, "; $sql .= " img_drapeau_baronnie, img_mini_blason_baronnie"; $sql .= " FROM baronnies,trolls"; $sql .= " WHERE x_fin_baronnie >= $miniX"; $sql .= " AND x_deb_baronnie <= $maxiX"; $sql .= " AND y_fin_baronnie >= $miniY"; $sql .= " AND y_deb_baronnie <= $maxiY"; $sql .= " AND z_fin_baronnie >= $miniZ"; $sql .= " AND z_deb_baronnie <= $maxiZ"; $sql .= " AND id_troll = id_baron_baronnie"; if ($DEV) echo "DEBUG parseZone() BARONNIE $sql <br>"; $res=mysql_query($sql, $db_vue_rm); echo mysql_error(); while (list( $x_deb_baronnie, $y_deb_baronnie, $z_deb_baronnie, $x_fin_baronnie, $y_fin_baronnie, $z_fin_baronnie, $x_trone_baronnie, $y_trone_baronnie, $z_trone_baronnie, $nom_baronnie, $id_baron_baronnie, $id_baronnie, $nom_baron, $img_drapeau_baronnie, $img_mini_blason_baronnie )=mysql_fetch_array($res)) { $distance_pa = calcPA($X,$Y,$Z,$x_trone_baronnie,$y_trone_baronnie,$z_trone_baronnie); $objet=array( x_deb_baronnie=>$x_deb_baronnie, y_deb_baronnie=>$y_deb_baronnie, z_deb_baronnie=>$z_deb_baronnie, x_fin_baronnie=>$x_fin_baronnie, y_fin_baronnie=>$y_fin_baronnie, z_fin_baronnie=>$z_fin_baronnie, x_trone_baronnie=>$x_trone_baronnie, y_trone_baronnie=>$y_trone_baronnie, z_trone_baronnie=>$z_trone_baronnie, nom_baronnie=>$nom_baronnie, id_baron_baronnie=>$id_baron_baronnie, id_baronnie=>$id_baronnie, nom_baron=>$nom_baron, img_drapeau_baronnie=>$img_drapeau_baronnie, img_mini_blason_baronnie=>$img_mini_blason_baronnie, distance_pa=>$distance_pa ); $baronnies[$x_trone_baronnie+100][$y_trone_baronnie+100][]=$objet; } */ /* On retourne la position et le numéro */ $tab[t_quadrillage] = $quadrillage; $tab[t_trolls] = $trolls; $tab[t_monstres] = $streums; $tab[t_mythiques] = $mythiques; $tab[t_lieux] = $lieux; $tab[t_tresors] = $came; $tab[t_champignons] = $champi; $tab[t_laby] = $labyrinthe; //$tab[t_baronnies] = $baronnies; $tab[max_pa] = $taille_distance_pa; $tab[taille_vue] = $nCasesVue; $tab[x_position] = $X; $tab[y_position] = $Y; $tab[z_position] = $Z; $tab[trolls_disparus] = $trolls_disparus; if ($id_troll != "") { $tab[myTroll] = getTroll($id_troll); } return $tab; }
<?php session_start(); require_once '../top.php'; if (!userIsGroupSpec() && !userIsGuilde()) { die("Tu n'es pas R&M !"); } $array_data = array(); $lignes = is_array($_REQUEST["copiercoller"]) ? explode("!:!", htmlspecialchars_decode(stripslashes(implode("", $_REQUEST["copiercoller"])))) : explode("\n", htmlspecialchars(stripslashes($_REQUEST["copiercoller"]))); $j = 0; $sorts = 0; $nb_sorts = 0; $nb_comps = 0; foreach ($lignes as $k => $value) { $value = trim($value); if (empty($value)) { unset($lignes[$k]); } else { $lignes[$k] = $value; } } foreach ($lignes as $ligne) { if (preg_match("#Identifiants.+ (\\d+) - (.+)#", $ligne, $resultat)) { $id = trim(htmlspecialchars($resultat[1])); $nom = trim($resultat[2]); } if (preg_match("#[ \t]*Race.+\\.+:(.+)#", $ligne, $resultat)) { $array_data["Race"] = trim($resultat[1]); } if (preg_match("#.+Date Limite d'Action : (.+)#", $ligne, $resultat)) { $troll_dla_en_cours = trim($resultat[1]);
function initAuth() { global $db_vue_rm; if (isset($_SERVER['REQUEST_URI'])) { $REQUEST_URI = $_SERVER['REQUEST_URI']; } else { $REQUEST_URI = ""; } if (isset($_SERVER['HTTP_REFERER'])) { $HTTP_REFERER = $_SERVER['HTTP_REFERER']; } else { $HTTP_REFERER = ""; } if (isset($_REQUEST['CHTROLL'])) { $CHTROLL = $_REQUEST['CHTROLL']; } else { $CHTROLL = ""; } if (isset($_REQUEST['CHPASS'])) { $CHPASS = $_REQUEST['CHPASS']; } else { $CHPASS = ""; } if (isset($_REQUEST['logout'])) { $logout = $_REQUEST['logout']; } else { $logout = ""; } if (isset($_REQUEST['CHTROLL']) && isset($_REQUEST['CHPASS'])) { setcookie('autologin', $_REQUEST['autologin'], time() + 365 * 24 * 3600); if ($_REQUEST['autologin']) { setcookie('num_troll', $_REQUEST['CHTROLL'], time() + 365 * 24 * 3600); setcookie('hash_pass_troll', md5($_REQUEST['CHPASS']), time() + 365 * 24 * 3600); } } if (isset($_COOKIE['autologin'])) { $autologin = $_COOKIE['autologin']; } else { $autologin = false; } if ($autologin) { $CHTROLL = $_COOKIE['num_troll']; $CHPASS = $_COOKIE['hash_pass_troll']; } if ($HTTP_REFERER == "" || preg_match("/inc_authent/", $HTTP_REFERER)) { $GOTO = $REQUEST_URI; } else { $GOTO = $HTTP_REFERER; } if (!preg_match("/inc_authent/", $GOTO) && !preg_match("/index/", $GOTO)) { $_SESSION['uri'] = $GOTO; } else { $_SESSION['uri'] = "/cockpit.php"; } # submit tout frais ? if ($CHTROLL > 0 || $CHPASS != "") { // Si le mot de passe n'est pas le mot de passe md5 if (strlen($CHPASS) != 32) { // On se débarasse du pass en clair $CHPASS = md5($CHPASS); } $_SESSION['AuthTroll'] = $CHTROLL; $_SESSION['Auth'] = $CHPASS; } # demande de logout ? if ($logout) { $_SESSION['Status'] = ""; $_SESSION['AuthTroll'] = ""; $_SESSION['AuthNomTroll'] = ""; $_SESSION['AuthGuilde'] = ""; $_SESSION['Auth'] = ""; $_SESSION['AuthGroupSpec'] = ""; session_unset(); session_destroy(); setcookie('autologin', false); echo "<script language='JavaScript'>"; echo "document.location.href='/index.php'"; echo "</script>"; } # Si la personne est déjà authentifiée if (isset($_SESSION['Status']) && $_SESSION['Status'] == "authentified") { return; } # Vérification normale if (is_numeric($CHTROLL) && $_SESSION['Status'] != "authentified") { $md5pass = "******"; // Initialisation, mais çà sert pas à grand chose ici // On regarde si le troll existe dans la base de données $sql = "SELECT pass_outils_troll, guilde_troll, nom_troll, nom_rang_troll, groupe_spec_troll"; $sql .= " FROM trolls WHERE id_troll={$CHTROLL}"; $result = mysql_query($sql, $db_vue_rm); echo mysql_error(); list($md5pass, $AuthGuilde, $AuthNomTroll, $nom_rang_troll, $groupe_spec_troll) = mysql_fetch_array($result); // S'il existe if (preg_match("/essai/", $nom_rang_troll)) { die("<h2>Vous êtes un troll à l'essai, vous n'avez pas accès aux outils pendant cette période<h2>"); } if (mysql_affected_rows() > 0 && $md5pass != "") { // et que le mot de passe est correct if ($md5pass == $_SESSION['Auth']) { //$_SESSION[AuthTroll]=$_SESSION[AuthTroll]; // pour indiquer ici toutes les valeurs possibles de session $_SESSION['AuthGuilde'] = $AuthGuilde; $_SESSION['AuthNomTroll'] = $AuthNomTroll; $_SESSION['AuthGroupSpec'] = $groupe_spec_troll; //$_SESSION[Auth]=$_SESSION[Auth]; } else { setcookie('autologin', false); die("<h2><font color='red'>Mot de passe incorrect</font></h2>"); } // S'il n'existe pas dans la base de données } else { /* Premier connection du troll sur les outils */ setcookie('autologin', false); echo "<script language='JavaScript'>"; echo "document.location.href='/change_password.php'"; echo "</script>"; echo "2 - Si vous n'etes pas redirigé automatiquement, cliquez ici : "; echo "<a href='/change_password.php?act=premiere'> Là j'tai dis !! </a>"; } if (userIsGuilde() || userIsGroupSpec()) { // Controle de l'administrateur // Remplis la variable de session if (isDbAdministration()) { $_SESSION['admin'] = "authenticated"; } else { $_SESSION['admin'] = "notauthorized"; } $_SESSION['Status'] = "authentified"; setcookie("cookie_id_troll", $_SESSION['AuthTroll'], time() + 31536000); // on garde le cookie 1 an enregistre_connection($_SESSION['AuthTroll']); redirectAuth(); } else { setcookie('autologin', false); session_unset(); session_destroy(); die("<h2>Soit vous n'êtes pas un Relais&Mago\n\t\t\t<br> soit le mot de passe est incorrect\n\t\t\t<br> soit c'est votre première connexion (réessayez)<br>\n\t\t\t<br><br>Conclusion : \n\t\t\t<br>Vous n'avez pas accès à ces pages<br>\n\t\t\tContactez glupglup (51166) pour résoudre le problème.<br><br>\n\t\t\t"); } } }
function selectDbMicheline($id_objet_depart, $id_objet_arrivee, $type_objet_depart, $type_objet_arrivee) { global $db_vue_rm; $id_objet = $id_objet_depart; $type_objet = $type_objet_depart; for ($i = 0; $i <= 1; $i++) { if ($i == 1) { $id_objet = $id_objet_arrivee; $type_objet = $type_objet_arrivee; $x1 = $x; $y1 = $y; $z1 = $z; $nom1 = $nom; } switch ($type_objet) { case "troll": $res = selectDbTrolls($id_objet); $res = $res[1]; if (!userIsGroupSpec() && $res[maj_groupe_spec_troll] == 'oui') { $res[x_troll] = 0; $res[y_troll] = 0; $res[z_troll] = 0; } $x = $res[x_troll]; $y = $res[y_troll]; $z = $res[z_troll]; $nom = $res[nom_troll]; break; case "monstre": $res = selectDbRechercheMonstres($id_objet); $x = $res[x_monstre]; $y = $res[y_monstre]; $z = $res[z_monstre]; $nom = $res[nom_monstre]; break; case "lieux": $res = selectDbLieux($id_objet); $x = $res[x_lieu]; $y = $res[y_lieu]; $z = $res[z_lieu]; $nom = $res[nom_lieu]; break; case "champignons": $res = selectDbRechercheChampignons($id_objet); $x = $res[x_champi]; $y = $res[y_champi]; $z = $res[z_champi]; $nom = $res[nom_champi]; break; } } $tab[0]['x'] = $x1; $tab[0]['y'] = $y1; $tab[0]['z'] = $z1; $tab[0]['nom'] = $nom1; $tab[1]['x'] = $x; $tab[1]['y'] = $y; $tab[1]['z'] = $z; $tab[1]['nom'] = $nom; return $tab; }
include_once "inc_connect.php"; include_once "functions_auth.php"; include_once "functions.php"; //$auto = false; $auto = $_REQUEST['auto']; $refresh = $_REQUEST['refresh']; if ($auto != "") { if (md5($auto) == MD5_PASS_EXTERNE) { if ($_REQUEST['state'] == "") { die('ERREUR STATE'); } } else { die('Acces Refuse - seq_ref'); } } if (userIsGuilde() || $auto != "" || userIsGroupSpec()) { $state = $_REQUEST['state']; $maj_troll_id = $_REQUEST['maj_troll_id']; $maj_x_troll = $_REQUEST['maj_x_troll']; $maj_y_troll = $_REQUEST['maj_y_troll']; $maj_z_troll = $_REQUEST['maj_z_troll']; if (!$auto) { initSequenceRefresh($state); } suiteSequenceRefresh($auto, $state, $maj_troll_id, $maj_x_troll, $maj_y_troll, $maj_z_troll, $refresh); } else { die("Accès refusé"); } function initSequenceRefresh($state) { ?>