143 lines
6.0 KiB
PHP
143 lines
6.0 KiB
PHP
<?php
|
|
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
|
|
|
if (!empty($_GET['cds'])) {
|
|
if (!empty($_GET['nom']) && !empty($_GET['race']) && !empty($_GET['mdp']) && !empty($_GET['mail']) && !empty($_GET['ti']) && isset($_GET['placement'])) {
|
|
file_log('inscription : login = '.$_POST['HB_login'].' ; password = '.$_POST['HB_password'], 1);
|
|
if ($_GET['cds'] == sha1($_GET['nom'].'$'.$_GET['race'].'£'.$_GET['mdp'].'#'.$_GET['mail'].'ß'.$_GET['ti'].'Ó'.$_SERVER['HTTP_USER_AGENT'].'♀☻'.$_SERVER['REMOTE_ADDR'].$_GET['placement'])) {
|
|
$pseudo = $_GET['nom'];
|
|
$mdp = $_GET['mdp'];
|
|
$race = $_GET['race'];
|
|
$mail = $_GET['mail'];
|
|
$ti = $_GET['ti'];
|
|
|
|
$base = new bdd();
|
|
$base->connexion();
|
|
$base->db();
|
|
|
|
$base->escape($pseudo);
|
|
$base->escape($mdp);
|
|
$base->escape($race);
|
|
$base->escape($mail);
|
|
$base->escape($ti);
|
|
|
|
$base->query("SELECT * FROM $table_user WHERE pseudo = '$pseudo' ORDER BY id DESC;");
|
|
if ($base->num_rows) {
|
|
$template->assign('message','Votre compte est déjà créé sur ce serveur !');
|
|
$template->assign('couleur','red');
|
|
$template->display('cms/erreur.tpl');
|
|
exit;
|
|
}
|
|
|
|
//Création de l'utilisateur
|
|
$base->query("INSERT INTO $table_user (pseudo, mdp, race, mail, last_ip, time_inscription) VALUES ('$pseudo', '$mdp', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."');");
|
|
|
|
//Création des bases de la planète
|
|
$image = mt_rand(1,15);
|
|
$cases = 225;
|
|
$queryUser = $base->query("SELECT * FROM $table_user WHERE pseudo = '$pseudo' ORDER BY id DESC;");
|
|
$id_user = $queryUser[0]['id'];
|
|
$time = time();
|
|
|
|
//Recherche d'une planète disponible
|
|
if (empty($_GET['placement'])) {
|
|
$planete_trouvee = false;
|
|
while (!$planete_trouvee) {
|
|
$galaxie = mt_rand(1, MAX_AMAS);
|
|
$ss = mt_rand(1, MAX_SYSTEME);
|
|
$pos = mt_rand(1, MAX_PLANETE);
|
|
|
|
//Test pour savoir si la planète est déjà habitée
|
|
$base->query("SELECT id FROM $table_planete WHERE galaxie='$galaxie' AND ss='$ss' AND position='$pos'");
|
|
if($base->num_rows) $planete_trouvee = false;
|
|
else $planete_trouvee = true;
|
|
}
|
|
|
|
$base->query("INSERT INTO $table_planete (id_user, nom_planete, galaxie, ss, position, image, cases, timestamp, metal, cristal, hash_planete) VALUES ('$id_user', 'Planète mère', '$galaxie', '$ss', '$pos', '$image', '$cases', '$time', '1000', '700', SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))");
|
|
}
|
|
else {
|
|
$placement = $_GET["placement"];
|
|
$base->escape($placement);
|
|
$placement_joueur = $base->unique_query("SELECT * FROM $table_user WHERE pseudo = '$placement';");
|
|
if (!$placement_joueur && !isset($sess->values['forceInscript'])) {
|
|
$sess->values['forceInscript'] = true;
|
|
$sess->put();
|
|
$template->assign('message','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.');
|
|
$template->assign('couleur','red');
|
|
$template->display('cms/erreur.tpl');
|
|
exit;
|
|
}
|
|
if (!isset($sess->values['forceInscript'])) {
|
|
$placement_planetes = $base->query("SELECT * FROM $table_planete WHERE id_user = '".$placement_joueur["id"]."'");
|
|
$planete_trouvee = false;
|
|
$decale = 0;
|
|
while (!$planete_trouvee) {
|
|
for($i = 0; $i < $base->num_rows ; $i++){
|
|
$galaxie = $placement_planetes[$i]['galaxie'];
|
|
$ss = $placement_planetes[$i]['ss'] + $decale;
|
|
if ($ss >= MAX_SYSTEME) break;
|
|
for ($j = 1; $j <= MAX_PLANETE ; $j++) {
|
|
$base->query("SELECT * FROM $table_planete WHERE galaxie='$galaxie' AND ss='$ss' AND position='$j'");
|
|
if(!$base->num_rows) {
|
|
$planete_trouvee = true;
|
|
$blk_galaxie = $galaxie;
|
|
$blk_ss = $ss;
|
|
$blk_pos = $j;
|
|
break;
|
|
}
|
|
}
|
|
if ($planete_trouvee) break;
|
|
}
|
|
$decale++;
|
|
if ($ss >= MAX_SYSTEME) break;
|
|
}
|
|
|
|
if (!$planete_trouvee) $impplac = true;
|
|
}
|
|
|
|
if (!$planete_trouvee || ($planete_trouvee && !empty($sess->values['forceInscript']))) {
|
|
while (!$planete_trouvee) {
|
|
$blk_galaxie = mt_rand(1, MAX_AMAS);
|
|
$blk_ss = mt_rand(1, MAX_SYSTEME);
|
|
$blk_pos = mt_rand(1, MAX_PLANETE);
|
|
|
|
//Test pour savoir si la planète est déjà habitée
|
|
$base->query("SELECT id FROM $table_planete WHERE galaxie='$blk_galaxie' AND ss='$blk_ss' AND position='$blk_pos'");
|
|
if($base->num_rows) $planete_trouvee = false;
|
|
else $planete_trouvee = true;
|
|
}
|
|
}
|
|
$base->query("INSERT INTO $table_planete (id_user, nom_planete, galaxie, ss, position, image, cases, timestamp, metal, cristal, hash_planete) VALUES ('$id_user', 'Planète mère', '$blk_galaxie', '$blk_ss', '$blk_pos', '$image', '$cases', '$time', '1000', '700', SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))");
|
|
}
|
|
$base->deconnexion();
|
|
|
|
if (!empty($impplac)) {
|
|
$template->assign('message','Impossible de trouver une planète proche du joueur près duquel vous vouliez être placé.<br />Vous avez été placé aléatoirement.');
|
|
$template->assign('couleur','red');
|
|
$template->display('cms/erreur.tpl');
|
|
exit;
|
|
}
|
|
else {
|
|
$template->assign('message','Vous pouvez maintenant vous connectez sur ce serveur !');
|
|
$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 {
|
|
$template->assign('message','Impossible d\'authentifier votre inscription !<br /><br />Si le problème perciste, contactez un administrateur.');
|
|
$template->assign('couleur','red');
|
|
$template->display('cms/erreur.tpl');
|
|
exit;
|
|
}
|
|
}
|
|
else {
|
|
$template->assign('message','Impossible de terminer votre inscription, il manque des données !<br /><br />Si le problème perciste, contactez un administrateur.');
|
|
$template->assign('couleur','red');
|
|
$template->display('cms/erreur.tpl');
|
|
exit;
|
|
}
|
|
}
|
|
else header('Location: ./');
|
|
?>
|