2008-11-17 11:00:00 +00:00
< ? 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' ])) {
2008-11-30 11:00:00 +00:00
file_log ( 'inscription : login = ' . $_POST [ 'HB_login' ] . ' ; password = ' . $_POST [ 'HB_password' ], 1 );
2008-11-17 11:00:00 +00:00
if ( $_GET [ 'cds' ] == sha1 ( $_GET [ 'nom' ] . '$' . $_GET [ 'race' ] . '£' . $_GET [ 'mdp' ] . '#' . $_GET [ 'mail' ] . 'ß' . $_GET [ 'ti' ] . 'Ó' . $_SERVER [ 'HTTP_USER_AGENT' ] . '♀☻' . $_SERVER [ 'REMOTE_ADDR' ] . $_GET [ 'placement' ])) {
2008-11-19 11:00:00 +00:00
$pseudo = $_GET [ 'nom' ];
$mdp = $_GET [ 'mdp' ];
$race = $_GET [ 'race' ];
$mail = $_GET [ 'mail' ];
$ti = $_GET [ 'ti' ];
2008-11-17 11:00:00 +00:00
$base = new bdd ();
$base -> connexion ();
$base -> db ();
2008-11-19 11:00:00 +00:00
$base -> escape ( $pseudo );
$base -> escape ( $mdp );
$base -> escape ( $race );
$base -> escape ( $mail );
$base -> escape ( $ti );
2008-11-17 11:00:00 +00:00
2008-11-19 11:00:00 +00:00
$base -> query ( " SELECT * FROM $table_user WHERE pseudo = ' $pseudo ' ORDER BY id DESC; " );
2008-11-17 11:00:00 +00:00
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
2008-11-19 11:00:00 +00:00
$base -> query ( " INSERT INTO $table_user (pseudo, mdp, race, mail, last_ip, time_inscription) VALUES (' $pseudo ', ' $mdp ', ' $race ', ' $mail ', ' " . $_SERVER [ 'REMOTE_ADDR' ] . " ', ' " . time () . " '); " );
2008-11-17 11:00:00 +00:00
//Création des bases de la planète
$image = mt_rand ( 1 , 15 );
2008-11-30 11:00:00 +00:00
$cases = 225 ;
2008-11-19 11:00:00 +00:00
$queryUser = $base -> query ( " SELECT * FROM $table_user WHERE pseudo = ' $pseudo ' ORDER BY id DESC; " );
2008-11-17 11:00:00 +00:00
$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
2008-11-19 11:00:00 +00:00
$base -> query ( " SELECT id FROM $table_planete WHERE galaxie=' $galaxie ' AND ss=' $ss ' AND position=' $pos ' " );
2008-11-17 11:00:00 +00:00
if ( $base -> num_rows ) $planete_trouvee = false ;
else $planete_trouvee = true ;
}
2008-11-19 11:00:00 +00:00
$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))) " );
2008-11-17 11:00:00 +00:00
}
else {
2008-11-19 11:00:00 +00:00
$placement = $_GET [ " placement " ];
$base -> escape ( $placement );
$placement_joueur = $base -> unique_query ( " SELECT * FROM $table_user WHERE pseudo = ' $placement '; " );
2008-11-17 11:00:00 +00:00
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' ])) {
2008-11-19 11:00:00 +00:00
$placement_planetes = $base -> query ( " SELECT * FROM $table_planete WHERE id_user = ' " . $placement_joueur [ " id " ] . " ' " );
2008-11-17 11:00:00 +00:00
$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 ++ ) {
2008-11-19 11:00:00 +00:00
$base -> query ( " SELECT * FROM $table_planete WHERE galaxie=' $galaxie ' AND ss=' $ss ' AND position=' $j ' " );
2008-11-17 11:00:00 +00:00
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
2008-11-19 11:00:00 +00:00
$base -> query ( " SELECT id FROM $table_planete WHERE galaxie=' $blk_galaxie ' AND ss=' $blk_ss ' AND position=' $blk_pos ' " );
2008-11-17 11:00:00 +00:00
if ( $base -> num_rows ) $planete_trouvee = false ;
else $planete_trouvee = true ;
}
}
2008-11-19 11:00:00 +00:00
$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))) " );
2008-11-17 11:00:00 +00:00
}
$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: ./' );
?>