forked from halo-battle/game
Version 1.12
This commit is contained in:
parent
2a066a7498
commit
de31cd3e9a
1373 changed files with 156282 additions and 45238 deletions
646
htdocs/index.php
646
htdocs/index.php
|
|
@ -1,76 +1,430 @@
|
|||
<?php
|
||||
//Définition de la constante anti-hacking
|
||||
define("INDEX", 1);
|
||||
$chrono_start = microtime();
|
||||
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
|
||||
define("_FCORE",trim($onyx));
|
||||
if (empty($sess->values['connected'])) define("xCSRF", true);
|
||||
require_once(_FCORE."common.php");
|
||||
define("DEBUG", false);
|
||||
|
||||
//Pistage Guillaume
|
||||
if ($_SERVER["REMOTE_ADDR"] == "82.245.190.225" || $_SERVER["REMOTE_ADDR"] == "84.101.175.59" || $_SERVER["REMOTE_ADDR"] == "86.214.198.131" || (isset($sess->values['id']) && ($sess->values['id'] == "21" || $sess->values['id'] == "23"))) {
|
||||
file_log(var_export($_REQUEST,TRUE),0 , _FCORE."logs/users");
|
||||
}
|
||||
//Inclusion de l'API Onyx
|
||||
require_once(trim(file_get_contents('./.onyx')));
|
||||
require_once("common.php"); //Chargement de tout le nécessaire pour le jeu
|
||||
|
||||
//On vérifie si le client est connecté sur le site
|
||||
if (isset($sess) && isset($sess->values['connected']) && $sess->values['connected'] && !empty($sess->values['id']) && !empty($sess->values['race']) && !empty($sess->level) && !empty($sess->values['idPlan'])) {
|
||||
if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->values['race']) && !empty($SESS->level) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide']))
|
||||
{
|
||||
$template->assign('menu', array_map("url", $VAR['menu']));
|
||||
require_once("pub.php"); //Inclusion de la pub et du footer
|
||||
|
||||
//Si un nouveau joueur cherche à se connecter du même endroit, on déconnecte le joueur en cours avant
|
||||
$HB_login = gpc('l');
|
||||
if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($SESS->values['id'])))
|
||||
{
|
||||
include("game/serveur/logout.php");
|
||||
}
|
||||
elseif (!empty($HB_login))
|
||||
{
|
||||
redirection('./'.$VAR['first_page']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$race = $SESS->values['race'];
|
||||
$securePlanete = array();
|
||||
|
||||
//Inclusion des formules
|
||||
require_once("game/vars.php");
|
||||
require_once("game/Class/class.donnee.php");
|
||||
//On inclus les différentes classes
|
||||
include_once("game/Class/class.file.php");
|
||||
include_once("game/Class/class.user.php");
|
||||
include_once("game/Class/class.surface.php");
|
||||
include_once("game/Class/class.planete.php");
|
||||
include_once("game/Class/class.asteroide.php");
|
||||
include_once("game/Class/class.flotte.php");
|
||||
|
||||
//Récupération d'informations au sujet de l'utilisateur
|
||||
$id_user = $SESS->values['id'];
|
||||
$template->assign('auth_level', $SESS->level);
|
||||
|
||||
//Recherche du multi-compte
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
|
||||
if (!isset($bdd)) $bdd = new Bdd();
|
||||
else $bdd->reconnexion();
|
||||
$multi = $bdd->query("SELECT U.pseudo, R.id_util FROM $table_registre_identification R INNER JOIN $table_user U ON U.id = R.id_util WHERE R.ip = '$ip' GROUP BY R.ip, R.id_util HAVING R.id_util != $id_user;");
|
||||
|
||||
|
||||
//On gère les demande de changement de planète
|
||||
if (isset($_POST['Cplanete']))
|
||||
{
|
||||
if (ereg('A', $_POST['Cplanete']))
|
||||
{
|
||||
$idAsteroideTest = intval(substr(gpc('Cplanete', 'post'), 1));
|
||||
if ($bdd->unique_query("SELECT id FROM $table_alliances WHERE id = $idAsteroideTest;") && $bdd->unique_query("SELECT id FROM $table_user WHERE id = $id_user AND id_alliance = $idAsteroideTest;"))
|
||||
{
|
||||
$SESS->values['idPlan'] = 0;
|
||||
$SESS->values['idAsteroide'] = $idAsteroideTest;
|
||||
$SESS->values['isolement'] = 0;
|
||||
$SESS->put();
|
||||
$template->assign('contenu', '<meta http-equiv="refresh" content="0"/>');
|
||||
$template->assign('page','vp');
|
||||
$template->assign('race', $race);
|
||||
$template->display('game/vp.tpl');
|
||||
exit;
|
||||
}
|
||||
unset($idAsteroideTest);
|
||||
}
|
||||
else
|
||||
{
|
||||
$idPlanTest = intval(gpc('Cplanete', 'post'));
|
||||
if ($bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = $id_user AND id = $idPlanTest;"))
|
||||
{
|
||||
$SESS->values['idPlan'] = $idPlanTest;
|
||||
$SESS->values['idAsteroide'] = 0;
|
||||
$SESS->values['isolement'] = 0;
|
||||
$SESS->put();
|
||||
$template->assign('contenu', '<meta http-equiv="refresh" content="0"/>');
|
||||
$template->assign('page','vp');
|
||||
$template->assign('race', $race);
|
||||
$template->display('game/vp.tpl');
|
||||
exit;
|
||||
}
|
||||
unset($idPlanTest);
|
||||
}
|
||||
}
|
||||
$idPlan = $SESS->values['idPlan'];
|
||||
$idAsteroide = $SESS->values['idAsteroide'];
|
||||
|
||||
$queryMail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = $id_user AND vu = '1';");
|
||||
$queryPlanetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user ORDER BY id ASC;");
|
||||
|
||||
$bdd->deconnexion();
|
||||
|
||||
//Chargement de la planète/astéroide actuel
|
||||
if ($idPlan == 0 && $idAsteroide == 0)
|
||||
{
|
||||
trigger_error('Planete et Asteroide nul, deconnexion du joueur '.$id_user,E_USER_ERROR);
|
||||
include("game/serveur/logout.php");
|
||||
exit;
|
||||
}
|
||||
elseif ($idPlan == 0)
|
||||
{
|
||||
define('SURFACE', 'asteroide');
|
||||
$planete = new Asteroide($idAsteroide);
|
||||
}
|
||||
else
|
||||
{
|
||||
define('SURFACE', 'planete');
|
||||
$planete = new Planete($idPlan);
|
||||
$planete->actualiser();
|
||||
}
|
||||
unset($ip, $idAsteroide, $idPlan);
|
||||
|
||||
//On vérifie que le joueur ne soit pas en mode vacances forcé
|
||||
if ($planete->mv > 0)
|
||||
{
|
||||
$SESS->close();
|
||||
redirection($config['first_page'].'?mvf');
|
||||
exit;
|
||||
}
|
||||
|
||||
//NOMS ET FLOTTES
|
||||
include('flottes.php');
|
||||
|
||||
//Envoie d'informations au template
|
||||
$template->assign('alertMail', $queryMail['nombre']);
|
||||
$template->assign('planete', $planete);
|
||||
$template->assign('planetes', $queryPlanetes);
|
||||
$template->assign('race', $race);
|
||||
$template->assign('nomsressources', 'ERREUR#RESSOURCES');
|
||||
//Calcul du temps de jeu
|
||||
$tpsdejeu = time() - $planete->last_visite;
|
||||
$heur = floor($tpsdejeu/3600);
|
||||
$min = floor(($tpsdejeu%3600)/60);
|
||||
if ($heur > 0) $min = $heur." h ".$min;
|
||||
$template->assign("tpsdejeu", $min." min");
|
||||
unset($tpsdejeu, $heur, $min, $queryMail);
|
||||
|
||||
//Récupération de la page demandée
|
||||
$p = gpc('p');
|
||||
|
||||
//Vérification de l'isolement de la planète
|
||||
if ((empty($SESS->values['isolement']) || time() >= $SESS->values['isolement']) && $p != 'operateur' && $p != 'demarrage' && $p != 'avertmulti' && $p != 'chat' && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion')
|
||||
{
|
||||
//TODO Si la planète est en isolement total, faire un autre message
|
||||
if ($planete->isolement())
|
||||
{
|
||||
$template->assign('titre','Planète isolée');
|
||||
erreur('Impossible de rentrer en contact avec cette planète.<br />Réessayez vers '.date('H:i', $planete->isolement[1]));
|
||||
}
|
||||
else
|
||||
{
|
||||
$SESS->values['isolement'] = $planete->isolement[0];
|
||||
$SESS->put();
|
||||
}
|
||||
}
|
||||
|
||||
$template->assign("race", $planete->race);
|
||||
|
||||
//SWITCH
|
||||
switch($p)
|
||||
{
|
||||
case 'batiments':
|
||||
include("game/jeu/batiments.php");
|
||||
break;
|
||||
case 'caserne':
|
||||
include("game/jeu/caserne.php");
|
||||
break;
|
||||
case 'chantierspatial':
|
||||
include("game/jeu/chantierspatial.php");
|
||||
break;
|
||||
case 'chantierterrestre':
|
||||
case 'defenses':
|
||||
include("game/jeu/chantierterrestre.php");
|
||||
break;
|
||||
case 'laboratoire':
|
||||
include("game/jeu/laboratoire.php");
|
||||
break;
|
||||
case 'arbre':
|
||||
include("game/jeu/arbre.php");
|
||||
break;
|
||||
case 'description':
|
||||
include("game/jeu/description.php");
|
||||
break;
|
||||
case 'ressources':
|
||||
include("game/jeu/ressources.php");
|
||||
break;
|
||||
case 'gestion':
|
||||
include("game/jeu/gestion.php");
|
||||
break;
|
||||
case 'marche':
|
||||
include("game/jeu/marche.php");
|
||||
break;
|
||||
case 'flotte':
|
||||
include("game/jeu/flotte.php");
|
||||
break;
|
||||
case 'carte':
|
||||
include("game/jeu/carte.php");
|
||||
break;
|
||||
|
||||
case 'rename':
|
||||
include("game/jeu/rename.php");
|
||||
break;
|
||||
case 'messagerie':
|
||||
include("game/serveur/messagerie.php");
|
||||
break;
|
||||
case 'envoyer':
|
||||
include("game/serveur/envoyer.php");
|
||||
break;
|
||||
case 'amis':
|
||||
include("game/serveur/amis.php");
|
||||
break;
|
||||
case 'destinationsrapides':
|
||||
include("game/serveur/destinrapid.php");
|
||||
break;
|
||||
case 'chat':
|
||||
$page = 'chat'; $titre = 'Chat';
|
||||
break;
|
||||
case 'aide':
|
||||
case 'faq':
|
||||
include("game/serveur/aide.php");
|
||||
break;
|
||||
|
||||
case 'operateur':
|
||||
include("game/serveur/operateur.php");
|
||||
break;
|
||||
case 'prochainement':
|
||||
$page = 'prochainement';
|
||||
$titre = 'Prochainement';
|
||||
break;
|
||||
case 'version':
|
||||
include("game/serveur/version.php");
|
||||
break;
|
||||
case "demarrage":
|
||||
include("game/serveur/demarrage.php");
|
||||
break;
|
||||
case "avertmulti":
|
||||
include("game/serveur/avertmulti.php");
|
||||
break;
|
||||
|
||||
case "pilori":
|
||||
include("game/serveur/pilori.php");
|
||||
break;
|
||||
case "conditions":
|
||||
include("game/serveur/conditions.php");
|
||||
break;
|
||||
case "regles":
|
||||
include("game/serveur/regles.php");
|
||||
break;
|
||||
|
||||
case 'deconnexion':
|
||||
case 'logout':
|
||||
include("game/serveur/logout.php");
|
||||
break;
|
||||
default:
|
||||
include("game/jeu/accueil.php");
|
||||
}
|
||||
|
||||
$template->assign("page", $page);
|
||||
if (!empty($titre))
|
||||
$template->assign("titre", ".: Halo-Battle - ".$titre." :.");
|
||||
else
|
||||
$template->assign("titre", ".: Halo-Battle :.");
|
||||
|
||||
$template->display("game/".$page.".tpl");
|
||||
}
|
||||
//Si le client n'est pas connecté au site
|
||||
else
|
||||
{
|
||||
include("game/serveur/connexion.php");
|
||||
|
||||
$p = gpc('p');
|
||||
switch($p){
|
||||
//Serveur principal
|
||||
/* case "validation":
|
||||
include('game/validation.php');
|
||||
break;
|
||||
case "inscription":
|
||||
include('game/inscription.php');
|
||||
break;
|
||||
case "oubliemdp":
|
||||
redirection('http://halo-battle.fr/');
|
||||
break;*/
|
||||
//Serveur de jeu
|
||||
case "connexion":
|
||||
$page = 'mini';
|
||||
break;
|
||||
case 'classement':
|
||||
include(_FCORE."../game/jeu/classement.php");
|
||||
break;
|
||||
case "njoueur":
|
||||
include(_FCORE."../game/jeu/njoueur.php");
|
||||
break;
|
||||
case "inscription":
|
||||
redirection('http://halo-battle.s-fr.com/?p=inscription');
|
||||
exit;
|
||||
break;
|
||||
case "oubliemdp":
|
||||
include(_FCORE."../game/jeu/oubliemdp.php");
|
||||
break;
|
||||
case "pilori":
|
||||
include("game/jeu/pilori.php");
|
||||
break;
|
||||
//Tous serveurs
|
||||
case "conditions":
|
||||
include(_FCORE."../game/jeu/conditions.php");
|
||||
break;
|
||||
case "regles":
|
||||
include(_FCORE."../game/jeu/regles.php");
|
||||
break;
|
||||
default:
|
||||
//$page = 'mini';
|
||||
redirection('http://www.halo-battle.fr/');
|
||||
exit;
|
||||
}
|
||||
$template->display('cms/'.$page.'.tpl');
|
||||
}
|
||||
|
||||
|
||||
exit();
|
||||
|
||||
//On vérifie si le client est connecté sur le site
|
||||
if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->values['race']) && !empty($SESS->level) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide'])) {
|
||||
|
||||
//Si un nouveau joueur cherche à se connecter du même endroit, on déconnecte le joueur en cours avant
|
||||
$HB_login = gpc('l');
|
||||
if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($sess->values['id']))) {
|
||||
include(_FCORE."../game/jeu/logout.php");
|
||||
}
|
||||
elseif (!empty($HB_login)) {
|
||||
header('Location: ./'.$config['first_page']);
|
||||
exit;
|
||||
}
|
||||
if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($SESS->values['id'])))
|
||||
{
|
||||
include(_FCORE."../game/jeu/logout.php");
|
||||
}
|
||||
elseif (!empty($HB_login))
|
||||
{
|
||||
redirection('./'.$config['first_page']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$race = $sess->values['race'];
|
||||
$race = $SESS->values['race'];
|
||||
$securePlanete = array();
|
||||
|
||||
//Inclusion des formules
|
||||
require_once(_FCORE."../game/vars.php");
|
||||
//On inclus les différentes classes
|
||||
include_once(_FCORE."../game/Class/class.file.php");
|
||||
include_once(_FCORE."../game/Class/class.user.php");
|
||||
include_once(_FCORE."../game/Class/class.surface.php");
|
||||
include_once(_FCORE."../game/Class/class.planete.php");
|
||||
include_once(_FCORE."../game/Class/class.asteroide.php");
|
||||
include_once(_FCORE."../game/Class/class.flotte.php");
|
||||
|
||||
//Récupération d'informations au sujet de l'utilisateur
|
||||
$id_user = $sess->values['id'];
|
||||
$template->assign('auth_level', $sess->level);
|
||||
$id_user = $SESS->values['id'];
|
||||
$template->assign('auth_level', $SESS->level);
|
||||
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->reconnexion();
|
||||
$multi = $bdd->query("SELECT U.pseudo, R.id_util FROM $table_registre_identification R INNER JOIN $table_user U ON U.id = R.id_util WHERE R.ip = '$ip' GROUP BY R.ip, R.id_util HAVING R.id_util != $id_user;");
|
||||
|
||||
if (isset($_POST['Cplanete'])) {
|
||||
$idPlanTest = intval($_POST['Cplanete']);
|
||||
if ($bdd->unique_query("SELECT * FROM $table_planete WHERE id_user = $id_user AND id = $idPlanTest;")) {
|
||||
$sess->values['idPlan'] = $idPlanTest;
|
||||
$sess->put();
|
||||
$template->assign('contenu', '<meta http-equiv="refresh" content="0"/>');
|
||||
$template->assign('page','vp');
|
||||
$template->assign('race', $race);
|
||||
$template->display('game/vp.tpl');
|
||||
exit;
|
||||
if (ereg('A', $_POST['Cplanete']))
|
||||
{
|
||||
$idAsteroideTest = intval(substr($_POST['Cplanete'], 1));
|
||||
if ($bdd->unique_query("SELECT id FROM $table_alliances WHERE id = $idAsteroideTest;") && $bdd->unique_query("SELECT id FROM $table_user WHERE id = $id_user AND id_alliance = $idAsteroideTest;")) {
|
||||
$SESS->values['idPlan'] = 0;
|
||||
$SESS->values['idAsteroide'] = $idAsteroideTest;
|
||||
$SESS->values['isolement'] = 0;
|
||||
$SESS->put();
|
||||
$template->assign('contenu', '<meta http-equiv="refresh" content="0"/>');
|
||||
$template->assign('page','vp');
|
||||
$template->assign('race', $race);
|
||||
$template->display('game/vp.tpl');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$idPlanTest = intval($_POST['Cplanete']);
|
||||
if ($bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = $id_user AND id = $idPlanTest;")) {
|
||||
$SESS->values['idPlan'] = $idPlanTest;
|
||||
$SESS->values['idAsteroide'] = 0;
|
||||
$SESS->values['isolement'] = 0;
|
||||
$SESS->put();
|
||||
$template->assign('contenu', '<meta http-equiv="refresh" content="0"/>');
|
||||
$template->assign('page','vp');
|
||||
$template->assign('race', $race);
|
||||
$template->display('game/vp.tpl');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
$idPlan = $sess->values['idPlan'];
|
||||
$idPlan = $SESS->values['idPlan'];
|
||||
$idAsteroide = $SESS->values['idAsteroide'];
|
||||
|
||||
$queryMail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = $id_user AND vu = '1';");
|
||||
$queryPlanetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = '$id_user' ORDER BY id ASC;");
|
||||
$queryPlanetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user ORDER BY id ASC;");
|
||||
$bdd->deconnexion();
|
||||
$planete = new Planete($idPlan);
|
||||
|
||||
|
||||
if ($idPlan == 0 && $idAsteroide == 0) {
|
||||
die('ERREUR : index.php ligne 94');
|
||||
trigger_error('Planete et Asteroide nul, deconnexion du joueur '.$id_user,E_USER_ERROR);
|
||||
include(_FCORE."../game/jeu/logout.php");
|
||||
}
|
||||
elseif ($idPlan == 0) {
|
||||
define('SURFACE', 'asteroide');
|
||||
$planete = new Asteroide($idAsteroide);
|
||||
}
|
||||
else {
|
||||
define('SURFACE', 'planete');
|
||||
$planete = new Planete($idPlan);
|
||||
}
|
||||
|
||||
//On vérifie que le joueur ne soit pas en mode vacances forcé
|
||||
if ($planete->mv > 0) {
|
||||
$sess->close();
|
||||
header('Location: '.$config['first_page'].'?mvf');
|
||||
$SESS->close();
|
||||
redirection($config['first_page'].'?mvf');
|
||||
exit;
|
||||
}
|
||||
|
||||
//Chargement asteroide
|
||||
if ($planete->id_alliance) {
|
||||
$bdd->connexion();
|
||||
$bdd->reconnexion();
|
||||
$template->assign('asteroide', $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";"));
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
|
@ -78,7 +432,7 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
///require_once(_FCORE."../game/ressources.php");
|
||||
///require_once(_FCORE."../game/constructions.php");
|
||||
require(_FCORE."../game/noms.php");
|
||||
//> require_once(_FCORE."../game/flottes.php");
|
||||
require_once(_FCORE."../game/flottes.php");
|
||||
|
||||
$template->assign('alertMail', $queryMail['nombre']);
|
||||
$template->assign('planete', $planete);
|
||||
|
|
@ -87,11 +441,17 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
|
||||
$p = gpc('p');
|
||||
//Isolement de la planète
|
||||
if ($planete->isolement && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion') {
|
||||
$template->assign('titre','Planète isolée');
|
||||
$isolement = explode(' ', $planete->isolement);
|
||||
if ((empty($SESS->values['isolement']) || time() >= $SESS->values['isolement']) && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion') {
|
||||
//TODO Si la planète est en isolement total, faire un autre message
|
||||
erreur('Impossible de rentrer en contact avec cette planète.<br /> Réessayez vers '.date('H:i', $isolement[1]));
|
||||
if ($planete->isolement()) {
|
||||
$template->assign('race',$race);
|
||||
$template->assign('titre','Planète isolée');
|
||||
erreur('Impossible de rentrer en contact avec cette planète.<br /> Réessayez vers '.date('H:i', $planete->isolement[1]));
|
||||
}
|
||||
else {
|
||||
$SESS->values['isolement'] = $planete->isolement[0];
|
||||
$SESS->put();
|
||||
}
|
||||
}
|
||||
|
||||
//Calcul du temps de jeu
|
||||
|
|
@ -156,8 +516,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
case 'carte':
|
||||
include(_FCORE."../game/jeu/carte.php");
|
||||
break;
|
||||
case 'bourse':
|
||||
include(_FCORE."../game/jeu/bourse.php");
|
||||
case 'marche':
|
||||
include(_FCORE."../game/jeu/marche.php");
|
||||
break;
|
||||
case 'options':
|
||||
include(_FCORE."../game/jeu/options.php");
|
||||
|
|
@ -224,192 +584,7 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
}
|
||||
//Si le joueur n'est pas connecté au site
|
||||
else {
|
||||
//On traite la demande de loggin de l'utilisateur
|
||||
if ((isset($_GET['l']) && isset($_GET['p'])) || (isset($_POST['HB_login']) && isset($_POST['HB_password']))) {
|
||||
//Récupération des données POST ou GET
|
||||
if (isset($_POST['HB_login']) && isset($_POST['HB_password']) && gpc('p') == 'connexion') {
|
||||
$HB_login = gpc('HB_login', 'post');
|
||||
$HB_password = gpc('HB_password', 'post');
|
||||
$HB_auth = hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j').$_SERVER["HTTP_USER_AGENT"].$_SERVER["REMOTE_ADDR"]);
|
||||
}
|
||||
else {
|
||||
$HB_login = gpc('l');
|
||||
if (is_numeric('0x'.gpc('p'))) $HB_password = cxor(hexstr(gpc('p')), date('WYDj'));
|
||||
$HB_auth = gpc('a');
|
||||
}
|
||||
|
||||
if (empty($HB_login) || empty($HB_password)) {
|
||||
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.<br /><br />');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif (hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j').$_SERVER["HTTP_USER_AGENT"].$_SERVER["REMOTE_ADDR"]) != $HB_auth && hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j', time()-300)) != $HB_auth) {
|
||||
$template->assign('message','Impossible d\'authentifier la connexion !<br /><br />Si le problème perciste, contactez un administrateur.');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
$ipe = $_SERVER['REMOTE_ADDR'];
|
||||
$bdd->connexion();
|
||||
$bruteforce = $bdd->unique_query("SELECT nombre FROM securite_identification WHERE ip = '$ipe';");
|
||||
if ($bruteforce['nombre'] >= 15) {
|
||||
$fichier = fopen(_FCORE."ban.xlist",'a+');
|
||||
fwrite($fichier, $_SERVER['REMOTE_ADDR']."\n\r");
|
||||
fclose($fichier);
|
||||
}
|
||||
$bdd->escape($HB_login);
|
||||
if (!$var = $bdd->unique_query("SELECT mdp_var, mdp FROM $table_user WHERE pseudo = '$HB_login';")) {
|
||||
if (isset($bruteforce['nombre'])) $bdd->query("UPDATE securite_identification SET nombre = nombre + 1 WHERE ip = '$ipe';");
|
||||
else $bdd->query("INSERT INTO securite_identification VALUES ('$ipe', '1', '".time()."');");
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.');
|
||||
$template->assign('couleur','red');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="http://www.halo-battle.s-fr.com/";\', 2500);</script>');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
$HB_password = mdp($HB_login, $HB_password, $var['mdp_var']);
|
||||
|
||||
$time = time();
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
$bdd->connexion();
|
||||
$bdd->escape($HB_password);
|
||||
|
||||
//Limiter le nombre de personnes en ligne simutanément
|
||||
if ($enligne['enligne'] > 1500) {
|
||||
$template->assign('message','Il y a actuellement trop de monde connecté sur Halo-Battle. Pour permettre aux joueurs une navigation convenable, nous vous remercions de revenir plus tard.');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
|
||||
$resultat = $bdd->unique_query("SELECT id, race, mv, last_visite, auth_level, raisonmv FROM $table_user WHERE pseudo = '$HB_login' AND mdp = '$HB_password';");
|
||||
if ($resultat) {
|
||||
$id = $resultat['id'];
|
||||
$reqPlan = $bdd->query("SELECT id, file_bat, file_tech, file_cas, file_vais, file_ter, timestamp FROM $table_planete WHERE id_user = '$id' ORDER BY id ASC;");
|
||||
$resultatP = $reqPlan[0];
|
||||
$race = $resultat['race'];
|
||||
|
||||
if (!$reqPlan) {
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('message','Impossible de trouver votre planète !');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($resultat['mv'] > 0) {
|
||||
if (($resultat['last_visite'] + 259200 > time() || $resultat['mv'] == 3) && $resultat['auth_level'] < 2) {
|
||||
if ($resultat['mv'] == 3) $template->assign('message','Vous êtes définitivement banni de cette galaxie pour '.$resultat['raisonmv'].'. Vous ne pouvez plus vous reconnecter sur votre compte');
|
||||
elseif ($resultat['mv'] == 2) $template->assign('message','Un opérateur a placé votre compte en mode vacances pour '.$resultat['raisonmv'].'. Vous ne pouvez pas vous reconnecter sur votre compte avant le<br />'.strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200));
|
||||
else $template->assign('message','Vous ne pouvez pas sortir du mode vacances avant le<br />'.strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200));
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
|
||||
$bdd->query("UPDATE $table_user SET mv = '0' WHERE id = '$id';");
|
||||
$bdd->query("UPDATE $table_planete SET timestamp = '".time()."' WHERE id_user = '$id';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
//On fait repartir à 0 les files d'attente
|
||||
include_once(_FCORE."../game/vars.php");
|
||||
include_once(_FCORE."../game/Class/class.file.php");
|
||||
include_once(_FCORE."../game/Class/class.user.php");
|
||||
include_once(_FCORE."../game/Class/class.planete.php");
|
||||
foreach ($reqPlan as $plan){
|
||||
if (!empty($plan['file_bat'])) {
|
||||
$file = new File($plan['file_bat']);
|
||||
$fileBat = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else $fileBat = '';
|
||||
if (!empty($plan['file_tech'])) {
|
||||
$file = new File($plan['file_tech']);
|
||||
$fileTech = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else $fileTech = '';
|
||||
if (!empty($plan['file_cas'])) {
|
||||
$file = new File($plan['file_cas']);
|
||||
$fileCas = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else $fileCas = '';
|
||||
if (!empty($plan['file_vais'])) {
|
||||
$file = new File($plan['file_vais']);
|
||||
$fileVais = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else $fileVais = '';
|
||||
if (!empty($plan['file_ter'])) {
|
||||
$file = new File($plan['file_ter']);
|
||||
$fileTer = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else $fileTer = '';
|
||||
|
||||
$idPlan = $plan['id'];
|
||||
$bdd->connexion();
|
||||
$bdd->escape($fileBat);
|
||||
$bdd->escape($fileTech);
|
||||
$bdd->escape($fileCas);
|
||||
$bdd->escape($fileVais);
|
||||
$bdd->escape($fileTer);
|
||||
$bdd->query("UPDATE $table_planete SET file_bat = '$fileBat', file_tech = '$fileTech', file_cas = '$fileCas', file_vais = '$fileVais', file_ter = '$fileTer' WHERE id = $idPlan;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
//On met à jour la planète pour tout le reste
|
||||
$plan = new Planete($plan['id'], true);
|
||||
}
|
||||
}
|
||||
//On met à jour toutes les planètes si le nombre de joueurs n'est pas trop important
|
||||
elseif ($enligne['enligne'] > 400) {
|
||||
include_once(_FCORE."../game/vars.php");
|
||||
include_once(_FCORE."../game/Class/class.file.php");
|
||||
include_once(_FCORE."../game/Class/class.user.php");
|
||||
include_once(_FCORE."../game/Class/class.planete.php");
|
||||
|
||||
foreach ($reqPlan as $plan){
|
||||
$plan = new Planete($plan['id'], true);
|
||||
}
|
||||
}
|
||||
|
||||
$plan = null;
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_user SET last_visite = '$time', last_ip = '$ip' WHERE id = $id;");
|
||||
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES (".$id.",'".$ip."');");
|
||||
$multi = $bdd->unique_query("SELECT COUNT(*) FROM $table_registre_identification WHERE ip = '$ip' GROUP BY ip, id_util;");
|
||||
$message = $bdd->unique_query("SELECT time FROM $table_messages_demarrage ORDER BY time DESC LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$sess->values['connected'] = TRUE;
|
||||
$sess->values['id'] = $resultat['id'];
|
||||
$sess->values['race'] = $resultat['race'];
|
||||
$sess->values['idPlan'] = $resultatP['id'];
|
||||
|
||||
//Si on détecte le multi-compte, on interdit l'accès au panneau d'admin
|
||||
if (empty($multi)) $sess->level = 1;
|
||||
else $sess->level = $resultat['auth_level'] + 1;
|
||||
$sess->put($resultat['id']);
|
||||
|
||||
if ($message['time'] > $resultat['last_visite']) header('Location: ./'.$config['first_page'].'?p=demarrage');
|
||||
elseif (empty($multi)) header('Location: ./'.$config['first_page'].'?p=avertmulti');
|
||||
else header('Location: ./'.$config['first_page'].'?p=accueil');
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.');
|
||||
$template->assign('couleur','red');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="http://www.halo-battle.s-fr.com/";\', 2500);</script>');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
include(_FCORE."../game/jeu/connexion.php");
|
||||
|
||||
$p = gpc('p');
|
||||
switch($p){
|
||||
|
|
@ -421,17 +596,20 @@ else {
|
|||
include('game/inscription.php');
|
||||
break;
|
||||
case "oubliemdp":
|
||||
header('Location: http://halo-battle.fr/');
|
||||
redirection('http://halo-battle.fr/');
|
||||
break;*/
|
||||
//Serveur de jeu
|
||||
case "connexion":
|
||||
$page = 'mini';
|
||||
break;
|
||||
case 'classement':
|
||||
include(_FCORE."../game/jeu/classement.php");
|
||||
break;
|
||||
case "njoueur":
|
||||
include(_FCORE."../game/jeu/njoueur.php");
|
||||
break;
|
||||
case "inscription":
|
||||
header('Location: http://halo-battle.s-fr.com/?p=inscription');
|
||||
redirection('http://halo-battle.s-fr.com/?p=inscription');
|
||||
exit;
|
||||
break;
|
||||
case "oubliemdp":
|
||||
|
|
@ -446,10 +624,10 @@ else {
|
|||
break;
|
||||
default:
|
||||
//$page = 'mini';
|
||||
header('Location: http://www.halo-battle.fr/');
|
||||
redirection('http://www.halo-battle.fr/');
|
||||
exit;
|
||||
}
|
||||
$template->display('cms/'.$page.'.tpl');
|
||||
}
|
||||
echo("\n<!--Page générée en : ".round((array_sum(explode(' ', microtime()))) - (array_sum(explode(' ', $chrono_start))), 4)." secondes.-->");
|
||||
?>
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue