forked from halo-battle/game
Version 1.13a
This commit is contained in:
parent
de31cd3e9a
commit
ba8f323879
1634 changed files with 10080 additions and 213021 deletions
|
|
@ -1,230 +1,249 @@
|
|||
<?php
|
||||
//On traite la demande de loggin de l'utilisateur
|
||||
if ((isset($_GET['l']) && isset($_GET['p'])) || (isset($_POST['HB_login']) && isset($_POST['HB_password'])))
|
||||
{
|
||||
if (empty($_SERVER["HTTP_USER_AGENT"]))
|
||||
$_SERVER["HTTP_USER_AGENT"] = "";
|
||||
|
||||
//Récupération des données POST ou GET
|
||||
if (isset($_POST['HB_login']) && isset($_POST['HB_password']) && gpc('p') == 'connexion')
|
||||
{
|
||||
//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', $LANG['badNomMdp']);
|
||||
$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', $LANG['badAuthConnect'].'<br /><br />'.$LANG['contactAdmin']);
|
||||
$template->assign('couleur', 'red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
|
||||
//Connexion à la base de données
|
||||
if (!isset($bdd)) $bdd = new BDD();
|
||||
else $bdd->reconnexion();
|
||||
|
||||
//Sauvegarde du nombre d'essai pour éviter les brute-force
|
||||
$bruteforce = $bdd->unique_query("SELECT nombre FROM securite_identification WHERE ip = '$ip';");
|
||||
if ($bruteforce['nombre'] >= 10)
|
||||
{
|
||||
$fichier = fopen(ONYX."ban.xlist",'a+');
|
||||
fwrite($fichier, $ip."\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 = '$ip';");
|
||||
else
|
||||
$bdd->query("INSERT INTO securite_identification VALUES ('$ip', '1', '".time()."');");
|
||||
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message', $LANG['badNomMdp']);
|
||||
$template->assign('couleur','red');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="'.$VAR['link']['accueil'].'";\', 2500);</script>');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
$HB_password = mdp($HB_login, $HB_password, $var['mdp_var']);
|
||||
|
||||
//Limiter le nombre de personnes en ligne simutanément
|
||||
if ($header['count'][2] > 1500)
|
||||
{
|
||||
$template->assign('message', $LANG['servSature']);
|
||||
$template->assign('couleur', 'red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
|
||||
unset($bruteforce, $fichier);
|
||||
$time = time();
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($HB_password);
|
||||
|
||||
$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)
|
||||
{
|
||||
$template->assign('message', $LANG['badPlanete']);
|
||||
$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', sprintf($LANG['banInf'], $resultat['raisonmv']));
|
||||
elseif ($resultat['mv'] == 2)
|
||||
$template->assign('message', sprintf($LANG['banVac'], $resultat['raisonmv'], strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200)));
|
||||
else
|
||||
$template->assign('message', sprintf($LANG['modVac'], 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("game/vars.php");
|
||||
include_once("Class/class.file.php");
|
||||
include_once("Class/class.user.php");
|
||||
include_once("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->reconnexion();
|
||||
$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($idPlan, true);
|
||||
}
|
||||
}
|
||||
//On met à jour toutes les planètes si le nombre de joueurs n'est pas trop important
|
||||
elseif ($header['count'][2] > 400)
|
||||
{
|
||||
include_once("game/vars.php");
|
||||
include_once("Class/class.file.php");
|
||||
include_once("Class/class.user.php");
|
||||
include_once("Class/class.planete.php");
|
||||
|
||||
foreach ($reqPlan as $plan)
|
||||
{
|
||||
$plan = new Planete($plan['id'], true);
|
||||
}
|
||||
}
|
||||
|
||||
unset($plan);
|
||||
|
||||
$bdd->reconnexion();
|
||||
$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'];
|
||||
$SESS->values['idAsteroide'] = 0;
|
||||
|
||||
//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']) redirection('./'.$VAR['first_page'].'?p=demarrage');
|
||||
elseif (empty($multi)) redirection('./'.$VAR['first_page'].'?p=avertmulti');
|
||||
else redirection('./'.$VAR['first_page'].'?p=accueil');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('message', $LANG['badNomMdp']);
|
||||
$template->assign('couleur', 'red');
|
||||
$template->assign('script', '<script type="text/javascript">setTimeout(\'document.location.href="'.$VAR['link']['accueil'].'";\', 2500);</script>');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
$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', $LANG['badNomMdp']);
|
||||
$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', $LANG['badAuthConnect'].'<br /><br />'.$LANG['contactAdmin']);
|
||||
$template->assign('couleur', 'red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
|
||||
//Connexion à la base de données
|
||||
if (!isset($bdd)) $bdd = new BDD();
|
||||
else $bdd->reconnexion();
|
||||
|
||||
//Sauvegarde du nombre d'essai pour éviter les brute-force
|
||||
$bruteforce = $bdd->unique_query("SELECT nombre FROM securite_identification WHERE ip = '$ip';");
|
||||
if ($bruteforce['nombre'] >= 10)
|
||||
{
|
||||
$fichier = fopen(ONYX."ban.xlist",'a+');
|
||||
fwrite($fichier, $ip."\n\r");
|
||||
fclose($fichier);
|
||||
}
|
||||
$bdd->escape($HB_login);
|
||||
if (!($var = $bdd->unique_query("SELECT mdp_var, mdp, auth_level FROM $table_user WHERE pseudo = '$HB_login';")) || ($var["auth_level"] >= 4 && isset($_GET['HB_login'])))
|
||||
{
|
||||
if (isset($bruteforce['nombre']))
|
||||
$bdd->query("UPDATE securite_identification SET nombre = nombre + 1 WHERE ip = '$ip';");
|
||||
else
|
||||
$bdd->query("INSERT INTO securite_identification VALUES ('$ip', '1', '".time()."');");
|
||||
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message', $LANG['badNomMdp']);
|
||||
$template->assign('couleur','red');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="'.$VAR['link']['accueil'].'";\', 2500);</script>');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
$enligne = $bdd->unique_query("SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$HB_password = mdp($HB_login, $HB_password, $var['mdp_var']);
|
||||
|
||||
//Limiter le nombre de personnes en ligne simutanément
|
||||
if ($enligne["enligne"] > 1500)
|
||||
{
|
||||
$template->assign('message', $LANG['servSature']);
|
||||
$template->assign('couleur', 'red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
|
||||
//On actualise le nombre de joueur en ligne si besoin
|
||||
if (abs($enligne["enligne"]-$header['count'][2]) > 6)
|
||||
Cache::del('headerNB');
|
||||
|
||||
unset($bruteforce, $fichier);
|
||||
$time = time();
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($HB_password);
|
||||
|
||||
//On vérifie que la requête ne provienne pas d'un proxy
|
||||
$proxy = $bdd->unique_query("SELECT ip FROM proxy_list WHERE ip LIKE '$ip' LIMIT 1;");
|
||||
$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 ($proxy)
|
||||
{
|
||||
erreur("Utilisation de proxy détectée !");
|
||||
}
|
||||
elseif ($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)
|
||||
{
|
||||
$template->assign('message', $LANG['badPlanete']);
|
||||
$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', sprintf($LANG['banInf'], $resultat['raisonmv']));
|
||||
elseif ($resultat['mv'] == 2)
|
||||
$template->assign('message', sprintf($LANG['banVac'], $resultat['raisonmv'], strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200)));
|
||||
else
|
||||
$template->assign('message', sprintf($LANG['modVac'], 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("game/vars.php");
|
||||
include_once("game/Class/class.file.php");
|
||||
include_once("game/Class/class.user.php");
|
||||
include_once("game/Class/class.planete.php");
|
||||
|
||||
foreach ($reqPlan as $plan)
|
||||
{
|
||||
if (!empty($plan['file_bat']))
|
||||
{
|
||||
$file = unserialize($plan['file_bat']);
|
||||
$fileBat = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else
|
||||
$fileBat = '';
|
||||
if (!empty($plan['file_tech']))
|
||||
{
|
||||
$file = unserialize($plan['file_tech']);
|
||||
$fileTech = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else
|
||||
$fileTech = '';
|
||||
if (!empty($plan['file_cas']))
|
||||
{
|
||||
$file = unserialize($plan['file_cas']);
|
||||
$fileCas = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else
|
||||
$fileCas = '';
|
||||
if (!empty($plan['file_vais']))
|
||||
{
|
||||
$file = unserialize($plan['file_vais']);
|
||||
$fileVais = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else
|
||||
$fileVais = '';
|
||||
if (!empty($plan['file_ter']))
|
||||
{
|
||||
$file = unserialize($plan['file_ter']);
|
||||
$fileTer = $file->reajusteVacances($plan['timestamp']);
|
||||
}
|
||||
else
|
||||
$fileTer = '';
|
||||
|
||||
$bdd->reconnexion();
|
||||
$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 = ".$plan['id'].";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
//On met à jour la planète pour tout le reste
|
||||
$plan = new Planete($plan['id'], true);
|
||||
$plan->actualiser();
|
||||
}
|
||||
}
|
||||
//On met à jour toutes les planètes si le nombre de joueurs n'est pas trop important
|
||||
elseif ($enligne["enligne"] > 400)
|
||||
{
|
||||
include_once("game/vars.php");
|
||||
include_once("game/Class/class.file.php");
|
||||
include_once("game/Class/class.user.php");
|
||||
include_once("game/Class/class.planete.php");
|
||||
|
||||
foreach ($reqPlan as $plan)
|
||||
{
|
||||
$plan = new Planete($plan['id'], true);
|
||||
}
|
||||
}
|
||||
|
||||
unset($plan, $enligne);
|
||||
|
||||
$bdd->reconnexion();
|
||||
$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'];
|
||||
$SESS->values['idAsteroide'] = 0;
|
||||
|
||||
//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'];
|
||||
|
||||
$SESS->put($resultat['id']);
|
||||
|
||||
if (!empty($resultat['last_visite']) && $message['time'] > $resultat['last_visite'])
|
||||
redirection('./'.$VAR['first_page'].'?p=demarrage');
|
||||
elseif (empty($multi))
|
||||
redirection('./'.$VAR['first_page'].'?p=avertmulti');
|
||||
else
|
||||
redirection('./'.$VAR['first_page'].'?p=accueil');
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('message', $LANG['badNomMdp']);
|
||||
$template->assign('couleur', 'red');
|
||||
$template->assign('script', '<script type="text/javascript">setTimeout(\'document.location.href="'.$VAR['link']['accueil'].'";\', 2500);</script>');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -6,7 +6,7 @@ $bdd->reconnexion();
|
|||
$message = $bdd->unique_query("SELECT * FROM $table_messages_demarrage ORDER BY time DESC LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
$titre = $message['titre'];
|
||||
$template->assign('contenu', '<p style="margin: 0 5px;">'.bbcode(nl2br($message['contenu']), 1).'<br /><br /><a class="submit" href="?p=accueil">Continuer</a></p>');
|
||||
$template->assign('contenu', '<p style="margin: 0 5px; text-align: center;">'.bbcode(nl2br($message['contenu']), 1).'<br /></p><h3><a class="submit" href="?p=accueil">Continuer</a></h3>');
|
||||
|
||||
unset($message);
|
||||
?>
|
||||
|
|
@ -56,4 +56,5 @@ else {
|
|||
$bdd->deconnexion();
|
||||
$template->assign('destins', $destins);
|
||||
}
|
||||
unset($a, $amas, $ss, $pos, $destins, $res, $fav);
|
||||
?>
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'envoyer';
|
||||
$titre = 'Envoyer un message';
|
||||
|
||||
if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message'])) {
|
||||
$utils = explode(';', gpc('nom', 'post'));
|
||||
$nbutil = count($utils);
|
||||
|
||||
$time = time();
|
||||
$message = htmlspecialchars(gpc('message', 'post'));
|
||||
$objet = htmlspecialchars(gpc('objet', 'post'));
|
||||
|
||||
if (strlen($message) > 9999) erreur('Le contenu de votre message est trop long. Limite : 9 999 caractères.');
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($message);
|
||||
$bdd->escape($objet);
|
||||
$bdd->escape($pseudo);
|
||||
|
||||
$introuv = array();
|
||||
for($i = 0; $i < $nbutil; $i++){
|
||||
$util = trim($utils[$i]);
|
||||
if (empty($util)) continue;
|
||||
$bdd->escape($util);
|
||||
if ($util != $planete->pseudo && $env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';")) {
|
||||
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$env['id'].", '$id_user', '$objet', '$message', '$time');");
|
||||
if ($env["envoyerMail"] >= 1 && !empty($env["mail"])) send_mail($env["mail"], 'Nouveau message privé', 'Bonjour '.$env["pseudo"].',<br /><br />Un nouveau message privé vous a été envoyé dans la galaxie '.$config['serveur_name']);
|
||||
}
|
||||
else $introuv[] = htmlentities($util);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
if (!empty($introuv[0])) erreur('Impossible de trouver le/les destinataire(s) suivant(s) : '.implode(', ', $introuv).'.<br />Les autres ont bien reçu votre message.', "red", '?p=envoyer');
|
||||
else erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
|
||||
}
|
||||
|
||||
$amis = array();
|
||||
$amisn = array();
|
||||
$bdd->reconnexion();
|
||||
foreach($planete->amis as $ami) {
|
||||
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";");
|
||||
if ($res != false) {
|
||||
$amis[] = $res['pseudo'];
|
||||
$amisn[] = $ami;
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('amis', $amis);
|
||||
$template->assign('amisn', $amisn);
|
||||
|
||||
if (isset($_GET['d'])) $template->assign('destinataire', gpc('d'));
|
||||
if (isset($_GET['o'])) $template->assign('objet', gpc('o'));
|
||||
?>
|
||||
|
|
@ -14,4 +14,4 @@ else
|
|||
redirection($VAR['first_page']);
|
||||
exit('HALO-BATTLE<br /><br />A bientôt !<br />See you soon !');
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
|
@ -2,79 +2,158 @@
|
|||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'messagerie';
|
||||
$titre = 'Messagerie';
|
||||
$template->assign("link_P", "messagerie");
|
||||
$template->assign("titreR", $titre);
|
||||
|
||||
//On interdit l'accès à la messagerie en cas de prise de contrôle d'un joueur
|
||||
if (!empty($sess->values['souscontrole'][0])) erreur('Vous êtes en mode prise de contrôle, vous ne pouvez pas accèder aux messages privés des joueurs.');
|
||||
if (!empty($sess->values['souscontrole'][0]))
|
||||
erreur('Vous êtes en mode prise de contrôle, vous ne pouvez pas accèder aux messages privés des joueurs.');
|
||||
|
||||
if (isset($_POST['IM'])) {
|
||||
$stop = false;
|
||||
for($i=1 ; $i<=$_POST['IM'] ; $i++) {
|
||||
if (!empty($_POST['m'.$i])) {
|
||||
$mes = $_POST['m'.$i];
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("DELETE FROM $table_mail WHERE destinataire = $id_user AND id = '$mes';");
|
||||
$bdd->deconnexion();
|
||||
$stop = true;
|
||||
}
|
||||
if ($id = intval(gpc('avertir')))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("UPDATE $table_mail SET statut = 1 WHERE destinataire = ".$planete->id_user." AND id = $id;");
|
||||
if ($bdd->affected())
|
||||
erreur('La demande de vérification de contenu par les opérateurs a été transmise avec succès.', 'green', '?p=messagerie');
|
||||
else
|
||||
erreur('Une demande est déjà en cours ou vous n\'êtes pas autorisé à avertir ce message.', 'red', '?p=messagerie');
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
if ($stop) { header('Location: ?p=messagerie'); exit; }
|
||||
}
|
||||
if (isset($_POST['IR'])) {
|
||||
$stop = false;
|
||||
for($i=1 ; $i<=$_POST['IR'] ; $i++) {
|
||||
if (!empty($_POST['r'.$i])) {
|
||||
$mes = $_POST['r'.$i];
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("UPDATE $table_mail SET vu='s' WHERE destinataire = $id_user AND id = '$mes';");
|
||||
$bdd->deconnexion();
|
||||
$stop = true;
|
||||
}
|
||||
|
||||
//On récupére l'onglet demandé
|
||||
$onglet = gpc('n');
|
||||
$template->assign('onglet', $onglet);
|
||||
|
||||
if ($onglet == "rapports")
|
||||
{
|
||||
//Demande de supression des messages
|
||||
if (!empty($_POST))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
foreach($_POST as $value)
|
||||
$bdd->query("UPDATE $table_mail SET vu = 's' WHERE destinataire = ".$planete->id_user." AND id = ".intval($value).";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=messagerie&n='.$onglet);
|
||||
exit;
|
||||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$data = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = ".$planete->id_user." AND expediteur = false AND vu != 's' ORDER BY id DESC;");
|
||||
$bdd->query("UPDATE $table_mail SET vu = 0 WHERE destinataire = ".$planete->id_user." AND expediteur = false AND vu != 's';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('messages', $data);
|
||||
}
|
||||
if ($stop) { header('Location: ?p=messagerie'); exit; }
|
||||
}
|
||||
elseif ($onglet == "send")
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$data = $bdd->query("SELECT M.*, U.pseudo AS destinataire FROM $table_mail M INNER JOIN $table_user U ON U.id = M.destinataire WHERE M.expediteur = ".$planete->id_user." ORDER BY M.id DESC;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (gpc('avertir')) {
|
||||
$id = gpc('avertir');
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($id);
|
||||
$bdd->query("UPDATE $table_mail SET statut = 1 WHERE destinataire = $id_user AND id = $id;");
|
||||
if ($bdd->affected()) erreur('La demande de vérification de contenu par les opérateurs a été transmise avec succès.', 'green', '?p=messagerie');
|
||||
else erreur('Une demande est déjà en cours ou vous n\'êtes pas autorisé à avertir ce message.', 'red', '?p=messagerie');
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
$template->assign('messages', $data);
|
||||
}
|
||||
elseif ($onglet == "envoyer")
|
||||
{
|
||||
$page = 'envoyer';
|
||||
$titre = 'Envoyer un message';
|
||||
|
||||
$bdd->reconnexion();
|
||||
$messcomp = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = $id_user AND M.expediteur != false ORDER BY M.id DESC;");
|
||||
$nbmax = $bdd->num_rows;
|
||||
if (!empty($_POST['objet']) && !empty($_POST['destinataire']) && !empty($_POST['message']))
|
||||
{
|
||||
$utils = explode(';', gpc('destinataire', 'post'));
|
||||
$nbutil = count($utils);
|
||||
|
||||
$result = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = $id_user AND M.expediteur != false ORDER BY M.id DESC LIMIT 50;");
|
||||
$time = time();
|
||||
$message = htmlspecialchars(gpc('message', 'post'));
|
||||
$objet = htmlspecialchars(gpc('objet', 'post'));
|
||||
|
||||
if ($planete->auth_level >= 3 && $nbmax > $bdd->num_rows) $result = $messcomp;
|
||||
elseif ($nbmax > $bdd->num_rows) $template->assign('avertissement', '<p style="color: red; "><b>Vous avez des messages en attente de réception. Libérez de la place dans votre messagerie pour les afficher.</b></p>');
|
||||
if (strlen($message) > 99999)
|
||||
erreur('Le contenu de votre message est trop long. Limite : 99 999 caractères.');
|
||||
if (empty($utils))
|
||||
erreur('Aucun utilisateur sélectionné.');
|
||||
|
||||
$TEMP_messages = array();
|
||||
$i=0;
|
||||
$nbc = count($result);
|
||||
for ($i=0 ; $i < $nbc ; $i++) {
|
||||
$TEMP_messages[] = array($result[$i]['sujet'], date("d/m/y H:i:s", $result[$i]['temps']), $result[$i]['expediteur'], bbcode($result[$i]['contenu']), $i+1, $result[$i]['id']);
|
||||
}
|
||||
$template->assign('messages', $TEMP_messages);
|
||||
$template->assign('IM', $i);
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($message);
|
||||
$bdd->escape($objet);
|
||||
|
||||
$introuv = array();
|
||||
foreach($utils as $util)
|
||||
{
|
||||
if (empty($util))
|
||||
continue;
|
||||
$util = trim($util);
|
||||
$bdd->escape($util);
|
||||
|
||||
$data = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = $id_user AND expediteur = false AND vu != 's' ORDER BY id DESC;");
|
||||
$nbres = $bdd->num_rows;
|
||||
$TEMP_rapport = array();
|
||||
for($i = 0; $i < $nbres; $i++){
|
||||
$TEMP_rapport[] = array($data[$i]['sujet'], date("d/m/y H:i:s", $data[$i]['temps']), 0, bbcode($data[$i]['contenu']), $i+1, $data[$i]['id']);
|
||||
}
|
||||
$template->assign('rapports', $TEMP_rapport);
|
||||
$template->assign('IR', $i);
|
||||
$template->assign('script', '<script>
|
||||
for (j=2; document.getElementsByName(\'m\'+j)[0]; j++) hide(document.getElementsByName(\'m\'+j)[0].previousSibling);
|
||||
for (j=2; document.getElementsByName(\'r\'+j)[0]; j++) hide(document.getElementsByName(\'r\'+j)[0].previousSibling);
|
||||
</script>');
|
||||
if ($util != $planete->pseudo && $env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';"))
|
||||
send_mp($env['id'], $objet, $message, 0, $planete->id_user);
|
||||
else
|
||||
$introuv[] = htmlentities($util);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
$bdd->query("UPDATE $table_mail SET vu = '0' WHERE destinataire = $id_user AND vu != 's'");
|
||||
$bdd->deconnexion();
|
||||
if (!empty($introuv[0]))
|
||||
erreur('Impossible de trouver le/les destinataire(s) suivant(s) : '.implode(', ', $introuv).'.<br />Les autres ont bien reçu votre message.', "red", '?p=messagerie&n=envoyer');
|
||||
else
|
||||
erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
|
||||
}
|
||||
|
||||
$amis = array();
|
||||
$amisn = array();
|
||||
$bdd->reconnexion();
|
||||
foreach($planete->amis as $ami) {
|
||||
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";");
|
||||
if ($res != false) {
|
||||
$amis[] = $res['pseudo'];
|
||||
$amisn[] = $ami;
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('amis', $amis);
|
||||
$template->assign('amisn', $amisn);
|
||||
|
||||
if (isset($_GET['d'])) $template->assign('destinataire', gpc('d'));
|
||||
if (isset($_GET['o'])) $template->assign('objet', gpc('o'));
|
||||
}
|
||||
else
|
||||
{
|
||||
//Demande de supression des messages
|
||||
if (!empty($_POST))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
foreach($_POST as $value)
|
||||
$bdd->query("DELETE FROM $table_mail WHERE destinataire = ".$planete->id_user." AND id = ".intval($value).";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=messagerie&n='.$onglet);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($SESS->level >= 3)
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$data = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC;");
|
||||
$bdd->query("UPDATE $table_mail M SET vu = 0 WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
//Calcul du nombre total de message enregistré
|
||||
$nbmax = $bdd->unique_query("SELECT COUNT(M.id) as nb FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false;");
|
||||
$data = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC LIMIT 50;");
|
||||
$nb_view = $bdd->num_rows;
|
||||
$bdd->query("UPDATE $table_mail M SET vu = 0 WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC LIMIT 50;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
if ($SESS->level < 3 && $nbmax["nb"] > $nb_view)
|
||||
$template->assign('avertissement', '<p style="color: red;"><b>Vous avez des messages ('.($nbmax["nb"]-$nb_view).') en attente de réception. Libérez de la place dans votre messagerie pour les afficher.</b></p>');
|
||||
|
||||
$template->assign('messages', $data);
|
||||
}
|
||||
|
||||
unset($onglet, $data, $nbmax);
|
||||
|
||||
if ($bdd->num_rows)
|
||||
$template->assign('IM', $bdd->num_rows);
|
||||
?>
|
||||
134
onyx2/include/game/serveur/njoueur.php
Normal file
134
onyx2/include/game/serveur/njoueur.php
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
if (!empty($_GET['cds']) && !empty($_GET['nom']) && !empty($_GET['race']) && !empty($_GET['mdp']) && !empty($_GET['mail']) && !empty($_GET['ti']) && isset($_GET['placement']))
|
||||
{
|
||||
//Reconstitution du mot de passe
|
||||
$_GET['mdp'] = hexstr(gpc('mdp'));
|
||||
if ($_GET['cds'] == sha1(gpc('nom').'$'.gpc('race').'£'.gpc('mdp').'#'.gpc('mail').'ß'.gpc('ti').'Ó'.$_SERVER['HTTP_USER_AGENT'].'♀☻'.$_SERVER['REMOTE_ADDR'].gpc('placement')))
|
||||
{
|
||||
$pseudo = gpc('nom');
|
||||
$race = gpc('race');
|
||||
$mdp = cxor(gpc('mdp'), sha1($pseudo.'£'.$race));
|
||||
$mdp = mdp($pseudo, $mdp);
|
||||
$alea = $mdp[1];
|
||||
$mdp = $mdp[0];
|
||||
$mail = gpc('mail');
|
||||
|
||||
$bdd = new bdd();
|
||||
$bdd->escape($pseudo);
|
||||
$bdd->escape($mdp);
|
||||
$bdd->escape($race);
|
||||
$bdd->escape($mail);
|
||||
|
||||
//On vérifie que le nom d'utilisateur ou l'adresse électronique n'existe pas déjà
|
||||
if ($bdd->query("SELECT id FROM $table_user WHERE pseudo = '$pseudo' OR mail = '$mail';"))
|
||||
erreur("Votre compte est déjà créé sur ce serveur ou votre adresse électronique est déjà associée à un autre compte de se serveur !");
|
||||
|
||||
//Création de l'utilisateur
|
||||
$bdd->query("INSERT INTO $table_user (pseudo, mdp, mdp_var, race, mail, last_ip, time_inscription, credits) VALUES ('$pseudo', '$mdp', '$alea', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."', 1000);");
|
||||
|
||||
$queryUser = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$pseudo';");
|
||||
$bdd->deconnexion();
|
||||
if (empty($queryUser))
|
||||
erreur("Une erreur est survenue lors de la création de votre compte sur le serveur.<br /><br />Si le problème persiste, contactez un administrateur.");
|
||||
|
||||
//Création des bases de la planète
|
||||
require_once("game/Class/class.planete.php");
|
||||
$newPlanete = new Planete(false);
|
||||
|
||||
//Recherche d'une planète disponible
|
||||
if (empty($_GET['placement']) || !empty($SESS->values['forceInscript']))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
while (true)
|
||||
{
|
||||
$galaxie = mt_rand(1, $VAR['nb_amas']);
|
||||
$ss = mt_rand(1, $VAR['nb_systeme']);
|
||||
$pos = mt_rand(1, $VAR['nb_planete']);
|
||||
|
||||
//Test pour savoir si la planète est déjà habitée
|
||||
if(!$bdd->query("SELECT id FROM $table_planete WHERE galaxie=$galaxie AND ss=$ss AND position=$pos;"))
|
||||
break;
|
||||
}
|
||||
$newPlanete->galaxie = $galaxie;
|
||||
$newPlanete->ss = $ss;
|
||||
$newPlanete->position = $pos;
|
||||
unset($galaxie, $ss, $pos);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
//Recherche du joueur ami
|
||||
$placement = gpc("placement");
|
||||
$bdd->escape($placement);
|
||||
$placement_joueur = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$placement';");
|
||||
|
||||
if (!$placement_joueur && !isset($SESS->values['forceInscript']))
|
||||
{
|
||||
$SESS->values['forceInscript'] = true;
|
||||
$SESS->put();
|
||||
$bdd->query("DELETE FROM $table_user WHERE id = ".$queryUser["id"].";");
|
||||
erreur("Le joueur à côté duquel vous souhaitez être placé n\'est pas encore ou plus inscrit sur ce serveur.<br /><br />Si vous ne souhaitez plus être placé à ses côtés, rechargez la page.");
|
||||
}
|
||||
|
||||
$placement_planetes = $bdd->query("SELECT galaxie, ss FROM $table_planete WHERE id_user = ".$placement_joueur["id"].";");
|
||||
$nbPlanete = count($placement_planetes);
|
||||
$decale = 0;
|
||||
while ($decale < 20 && empty($newPlanete->galaxie))
|
||||
{
|
||||
for($i = 0; $i < $nbPlanete ; $i++)
|
||||
{
|
||||
$galaxie = $placement_planetes[$i]['galaxie'];
|
||||
if (empty($galaxie))
|
||||
continue;
|
||||
|
||||
//Alternativement, on essaye le système précédent et le système suivant
|
||||
if ($decale%2)
|
||||
$ss = $placement_planetes[$i]['ss'] - floor($decale/2);
|
||||
else
|
||||
$ss = $placement_planetes[$i]['ss'] + $decale/2;
|
||||
|
||||
if ($ss >= $VAR['nb_systeme'] || $ss <= 0)
|
||||
break;
|
||||
for ($j = 1; $j <= $VAR['nb_planete'] ; $j++)
|
||||
{
|
||||
if(!$bdd->query("SELECT id FROM $table_planete WHERE galaxie=$galaxie AND ss=$ss AND position=$j;"))
|
||||
{
|
||||
$newPlanete->galaxie = $galaxie;
|
||||
$newPlanete->ss = $ss;
|
||||
$newPlanete->position = $j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($newPlanete->galaxie)
|
||||
break;
|
||||
}
|
||||
$decale++;
|
||||
}
|
||||
unset($decale, $galaxie, $ss, $pos, $i, $j, $nbPlanete, $placement_planetes, $placement_joueur, $placement);
|
||||
|
||||
//Si le système n'a trouvé aucune planète
|
||||
if (empty($newPlanete->galaxie))
|
||||
{
|
||||
$SESS->values['forceInscript'] = true;
|
||||
$SESS->put();
|
||||
$bdd->query("DELETE FROM $table_user WHERE id = ".$queryUser["id"].";");
|
||||
erreur("Nous n'avons pas pu trouvé de planète disponible autour de l'une des planètes du joueur que vous avez demandé.<br /><br />Si vous ne souhaitez plus être placé à ses côtés, rechargez la page.");
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
//On termine la création de la planète
|
||||
$newPlanete->creer($queryUser['id'], true);
|
||||
send_mp($queryUser['id'], "Bienvenue sur Halo-battle !", "Bienvenue sur Halo-battle ".$pseudo.",\nVous pouvez dès maintenant commencer à jouer, mais nous vous conseillons vivement de lire la FAQ afin de vous familiariser avec les principales fonctions du jeu !\n\nN'hésitez pas à vous inscrire sur notre forum : <a href=\"http://www.halo-battle.fr/forum/\">http://www.halo-battle.fr/forum/</a>\n\nCordialement, le staff d'Halo-Battle.");
|
||||
unset($queryUser);
|
||||
|
||||
erreur("Félicitations !<br />Votre compte a été créé avec succès, vous pouvez maintenant vous connecter sur ce serveur en utilisant vos identifiants.<br />A tout de suite.", "green", $VAR["first_page"]."?index", 3500);
|
||||
}
|
||||
else
|
||||
erreur("Impossible d'authentifier votre inscription !<br /><br />Si le problème persiste, contactez un administrateur.");
|
||||
}
|
||||
else
|
||||
erreur("Impossible de terminer votre inscription, il manque des données !<br /><br />Si le problème persiste, contactez un administrateur.");
|
||||
?>
|
||||
160
onyx2/include/game/serveur/options.php
Normal file
160
onyx2/include/game/serveur/options.php
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Options';
|
||||
|
||||
if (gpc("p") == "changeopt" && ($Un = intval(gpc('util'))) && $Un == $SESS->values["id"])
|
||||
{
|
||||
$Ui = gpc('auth');
|
||||
$bdd = new BDD();
|
||||
$bdd->escape($Ui);
|
||||
$bdd->query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '', mailNOUV = '' WHERE id = $Un AND SHA1(mdpNOUV) = '$Ui' AND mdpNOUV != '';");
|
||||
if ($bdd->affected() == 1)
|
||||
erreur("Votre nouveau mot de passe est maintenant actif.", "green");
|
||||
|
||||
$bdd->query("UPDATE user SET mail = mailNOUV, mailNOUV = '', mdpNOUV = '' WHERE id = $Un AND SHA1(mailNOUV) = '$Ui' AND mailNOUV != '';");
|
||||
if ($bdd->affected() == 1)
|
||||
erreur("Votre nouvelle adresse électronique est maintenant active.", "green");
|
||||
else
|
||||
erreur("Ce lien a expiré !");
|
||||
}
|
||||
else
|
||||
{
|
||||
$onglet = gpc("n");
|
||||
|
||||
if ($onglet == "compte")
|
||||
{
|
||||
$page = 'options/2';
|
||||
|
||||
if (isset($_POST["chgmdp"]))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$user = $bdd->unique_query("SELECT mdp, mdp_var FROM $table_user WHERE id = ".$planete->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (mdp($planete->pseudo, gpc('mdp_anc', 'post'), $user["mdp_var"]) == $user["mdp"])
|
||||
{
|
||||
$check = check_mdp($_POST['mdp_nouv'], $_POST['mdp_conf']);
|
||||
if (empty($check))
|
||||
{
|
||||
$new_pass = mdp($planete->pseudo, gpc('mdp_nouv', 'post'), $user["mdp_var"]);
|
||||
$auth = sha1($new_pass);
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($new_pass);
|
||||
$bdd->query("UPDATE $table_user SET mdpNOUV = '$new_pass' WHERE id = ".$planete->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if(!send_mail($planete->mail, "Halo-Battle :: Activation de votre nouveau mot de passe", "Bonjour ".$planete->pseudo.",\n\nVous recevez ce mail suite à votre demande de changement de mot de passe.\nCe dernier entrera en vigueur une fois que vous aurez validé ce changement en cliquant sur le lien suivant :\nhttp://".$_SERVER['HTTP_HOST']."/".$VAR['first_page']."?p=changeopt&util=".$planete->id_user."&auth=".$auth."\n\nNotez que pour que le mot de passe soit changé, il faut que vous soyez connecté sur votre compte."))
|
||||
erreur('Erreur lors de l\'envoie du courriel de confirmation !<br /><br />Si le problème perciste, <a href="mailto:'.$VAR['mail_admin'].'">contactez un administrateur</a>.');
|
||||
else
|
||||
erreur('Un courriel vient d\'être envoyé à '.$planete->mail.'. Le mot de passe ne sera modifié qu\'après avoir cliqué sur le lien d\'activation contenu dans ce courriel.', "green");
|
||||
unset($new_pass);
|
||||
}
|
||||
else
|
||||
erreur($check, "red", $VAR["menu"]["options"]."&n=compte");
|
||||
}
|
||||
else
|
||||
erreur("L'ancien mot de passe que vous avez indiqué ne correspond pas.", "red", $VAR["menu"]["options"]."&n=compte");
|
||||
unset($new_pass, $auth, $user);
|
||||
}
|
||||
elseif (isset($_POST["chgmail"]))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$user = $bdd->unique_query("SELECT mdp, mdp_var FROM $table_user WHERE id = ".$planete->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (mdp($planete->pseudo, gpc('mdp_mail', 'post'), $user["mdp_var"]) == $user["mdp"])
|
||||
{
|
||||
$nouveauMail = gpc('mail', 'post');
|
||||
if (preg_match("#^[A-Za-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $nouveauMail))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($nouveauMail);
|
||||
$result = $bdd->query("SELECT mail FROM user WHERE mail = '$nouveauMail'");
|
||||
if($result)
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur('Vous ne pouvez pas utiliser cette adresse mail, elle est déjà utilisée par un autre utilisateur.', "red", '?p=options');
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->query("UPDATE user SET mailNOUV = '$nouveauMail' WHERE id = ".$planete->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
$auth = sha1($nouveauMail);
|
||||
|
||||
//On envoie le mail de confirmation
|
||||
if(!send_mail($nouveauMail, "Halo-Battle :: Activation de votre nouvelle adresse électronique", "Bonjour ".$planete->pseudo.",\n\nVous recevez ce mail suite à votre demande de changement d'adresse électronique. Cette dernière entrera en vigueur une fois que vous aurez validé ce changement en cliquant sur le lien suivant :\nhttp://".$_SERVER['HTTP_HOST']."/".$VAR['first_page']."?p=changeopt&util=".$planete->id_user."&auth=".$auth."\n\nNotez que pour que le changement soit pris en compte, il faut que vous soyez connecté sur votre compte."))
|
||||
erreur('Erreur lors de l\'envoie du courriel de confirmation !<br /><br />Si le problème perciste, <a href="mailto:'.$VAR['mail_admin'].'">contactez un administrateur</a>.');
|
||||
else
|
||||
erreur('Un courriel vient d\'être envoyé à '.$nouveauMail.'. L\'adresse électronique ne sera modifié qu\'après avoir cliqué sur le lien d\'activation contenu dans ce courriel.', "green");
|
||||
}
|
||||
}
|
||||
else
|
||||
erreur("L'adresse email que vous avez indiqué semble incorrecte.", "red", $VAR["menu"]["options"]."&n=compte");
|
||||
}
|
||||
else
|
||||
erreur("Le mot de passe que vous avez indiqué ne correspond pas.", "red", $VAR["menu"]["options"]."&n=compte");
|
||||
unset($nouveauMail, $result, $user);
|
||||
}
|
||||
elseif (!empty($_GET["a"]) && gpc("a") == "mv")
|
||||
{
|
||||
if (gpc("c") == $SESS->values['idvac'])
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("UPDATE user SET mv = 1 WHERE id = ".$planete->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$SESS->values['connected'] = FALSE;
|
||||
$SESS->put();
|
||||
|
||||
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $planete->last_visite+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
|
||||
}
|
||||
else
|
||||
erreur("Impossible d'authentifier le placement en mode vacances !", "red", $VAR["menu"]["options"]."&n=compte");
|
||||
}
|
||||
elseif (!empty($_GET["a"]) && gpc("a") == "dl")
|
||||
{
|
||||
if (gpc("c") == $SESS->values['idvac'])
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("UPDATE user SET mv = -2 WHERE id = ".$planete->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
erreur('Votre compte sera supprimé le <br />'.strftime("%A %d %B à %H:%M", mktime(date('H', $VAR["time_maintenance"]),date('i', $VAR["time_maintenance"]),0,date('n',time()+86400*2),date('d',time()+86400*2),date('y',time()+86400*2))).'.', "green");
|
||||
}
|
||||
else
|
||||
erreur("Impossible d'authentifier la supression du compte !", "red", $VAR["menu"]["options"]."&n=compte");
|
||||
}
|
||||
|
||||
$template->assign('idvac', $SESS->values['idvac'] = sha1(rand(123456789,9876543210).'ß‘}☻'.time()));
|
||||
$SESS->put();
|
||||
}
|
||||
elseif ($onglet == "jeu")
|
||||
{
|
||||
$options = intval($_POST["recmail"]);
|
||||
$page = 'options/3';
|
||||
}
|
||||
elseif ($onglet == "notif")
|
||||
{
|
||||
$page = 'options/4';
|
||||
|
||||
if (isset($_POST["notif"]))
|
||||
{
|
||||
$planete->envoyerMail = 0;
|
||||
if (!empty($_POST["rapport"]))
|
||||
$planete->envoyerMail += 1;
|
||||
if (!empty($_POST["mp"]))
|
||||
$planete->envoyerMail += 2;
|
||||
|
||||
$planete->addModifUser("envoyerMail");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$onglet = "ext";
|
||||
$page = 'options/1';
|
||||
}
|
||||
|
||||
$template->assign("onglet", $onglet);
|
||||
}
|
||||
?>
|
||||
109
onyx2/include/game/serveur/oubliemdp.php
Normal file
109
onyx2/include/game/serveur/oubliemdp.php
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
session_start();
|
||||
require_once("game/Class/class.phpmailer.php");
|
||||
$page = 'oubliemdp';
|
||||
$erreur = '';
|
||||
|
||||
if (!empty($_GET['i']) && isset($_GET['n']))
|
||||
{
|
||||
$Un = gpc('n');
|
||||
$Ui = gpc('i');
|
||||
$bdd = new BDD();
|
||||
$bdd->escape($Un);
|
||||
$bdd->escape($Ui);
|
||||
$user = $bdd->unique_query("SELECT * FROM $table_user WHERE pseudo = '$Un' AND mdpNOUV = '$Ui';");
|
||||
if ($user)
|
||||
{
|
||||
$bdd->query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '' WHERE pseudo = '$Un'");
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Votre mot de passe a été réinitialisé avec succès.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?index";\', 3500);</script>');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Ce lien a expiré !');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if ((isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_captcha'])) || (isset($_GET['ps']) && isset($_GET['m']) && isset($_GET['a'])))
|
||||
{
|
||||
$ok = true;
|
||||
if ((empty($_POST['HB_pseudo']) || empty($_POST['HB_mail'])) && (empty($_GET['ps']) || empty($_GET['m'])))
|
||||
{
|
||||
$ok = false;
|
||||
$erreur .= '<p style="color: #FF0000"><b>Pseudo ou adresse électronique vide :</b><br />Veuillez compléter tous les champs de ce formulaire avant de le valider.</p><br />';
|
||||
}
|
||||
|
||||
if (!isset($_POST['HB_captcha']))
|
||||
$_POST['HB_captcha'] = '';
|
||||
if (isset($_GET['m']) && is_numeric('0x'.$_GET['m']))
|
||||
$_GET['m'] = cxor(hexstr(gpc('m')), date('WYDj'));
|
||||
elseif (strtolower($_POST['HB_captcha']) != strtolower($_SESSION['aleat_nbr']) && gpc('a') != hash_var(gpc('ps').'☻♫☼'.date('W!Y¨D@j').'Ņ♂↨'.gpc('m'), "sha512"))
|
||||
{
|
||||
$ok = false;
|
||||
$erreur .= '<p style="color: #FF0000"><b>Code de vérification incorrect :</b><br />Le texte que vous avez recopier ne correspondait pas au texte de l\'image, veuillez recommencer.</p><br />';
|
||||
}
|
||||
if ($ok)
|
||||
{
|
||||
if (isset($_SESSION['aleat_nbr']) && strtolower($_POST['HB_captcha']) == strtolower($_SESSION['aleat_nbr']))
|
||||
{
|
||||
$HB_pseudo = gpc('HB_pseudo', 'post');
|
||||
$HB_mail = gpc('HB_mail', 'post');
|
||||
}
|
||||
else
|
||||
{
|
||||
$HB_pseudo = gpc('ps');
|
||||
$HB_mail = gpc('m');
|
||||
}
|
||||
|
||||
$bdd = new BDD();
|
||||
$bdd->escape($HB_pseudo);
|
||||
$bdd->escape($HB_mail);
|
||||
$user = $bdd->unique_query("SELECT id, mdp_var FROM $table_user WHERE pseudo = '$HB_pseudo' AND mail = '$HB_mail';");
|
||||
if ($user)
|
||||
{
|
||||
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
$code = '';
|
||||
while(strlen($code) <= 8)
|
||||
{
|
||||
$code .= $liste[rand(0,60)];
|
||||
}
|
||||
$passNOUV = mdp($HB_pseudo, $code, $user['mdp_var']);
|
||||
$bdd->unique_query("UPDATE $table_user SET mdpNOUV = '$passNOUV' WHERE pseudo = '$HB_pseudo';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if(!send_mail($HB_mail, 'Halo-Battle :: Reinitialisation du mot de passe', 'Bonjour '.$HB_pseudo.",\n\nVous recevez ce mail suite à votre demande de réinitialisation de mot de passe. Pour confirmer votre réinitialisation de mot de passe et ainsi pouvoir de nouveau accéder au jeu, cliquez sur le lien ci-après :\n\nhttp://".$_SERVER['HTTP_HOST'].'/'.$VAR['first_page'].'?p=oubliemdp&i='.$passNOUV.'&n='.$HB_pseudo."\n\nVotre nouveau mot de passe est : ".$code."\n\nA bientôt dans Halo-Battle,\nLe staff")) //Teste si le return code est ok.
|
||||
{
|
||||
$template->assign('message','Erreur lors de l\'envoie du courriel de confirmation !<br /><br /><small><i>'.$mail->ErrorInfo.'</i></small><br /><br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->assign('message','Un nouveau mot de passe a été généré pour votre compte, vous le trouverez dans votre boîte de courrier électronique.<br /><br /><em>Pensez à regarder dans vos courriers indésirables, on ne sait jamais ...</em>');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
$mail->SmtpClose();
|
||||
unset($mail);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
$erreur .= '<p style="color: #FF0000"><b>Nom d\'utilisateur ou adresse électronique incorrect :</b><br />L\'adresse électronique que vous avez indiqué ne correspond pas au nom d\'utilisateur. Réessayez.</p><br />';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$template->assign('erreurs', $erreur);
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue