escape($id); $user = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id;"); $bdd->deconnexion(); if (!empty($user)) { $this->id_user = $user["id"]; $this->pseudo = $user["pseudo"]; $this->auth_level = $user["auth_level"]; $this->race = $user["race"]; $this->options = @intval($user["options"]); $this->mv = $user["mv"]; $this->id_alliance = $user["id_alliance"]; $this->id_grade_alliance = $user["id_grade_alliance"]; $this->mail = $user["mail"]; $this->envoyerMail = $user["envoyerMail"]; $this->last_visite = $user["last_visite"]; $this->points = $user["points"]; $this->place_points = $user["place_points"]; $this->credits = $user["credits"]; $this->politique = $user["politique"]; $this->politique_lastchange = $user["politique_lastchange"]; if (!empty($user["amis"])) { $this->amis = unserialize($user["amis"]); } else { $this->amis = array(); } if (!empty($user["destinationsFavoris"])) { $this->destinationsFavoris = unserialize($user["destinationsFavoris"]); } else { $this->destinationsFavoris = array(); } $this->combatAT_tactique = $user["combatAT_tactique"]; $this->combatDE_tactique = $user["combatDE_tactique"]; foreach ($technologiesVAR as $tech) { $this->technologies[] = intval($user[$tech]); } //Si l'ID d'alliance est défini, on charge l'alliance if (!empty($this->id_alliance)) { $this->alliance = new TinyAsteroide($this->id_alliance); } } else { die('Erreur #01 : Utilisateur recherché introuvable dans la base de données. Contactez le support technique ('.$config['mail_support'].') au plus vite en précisant le code d\'erreur.'); } } } public function loadPermissions($fondateur = 0) { if ($fondateur == $this->id_user) { $this->permissions_alliance = 1023; } else { global $table_alliances_grade; $bdd = new BDD(); $grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$this->id_grade_alliance.";"); $bdd->deconnexion(); $this->permissions_alliance = intval($grade['auth']); } } public function addPoints($metal, $cristal, $hydrogene, $credits = 0, $demolition = false) { global $table_bourse_ressources; //On charge les 3 valeurs boursières $bdd = new BDD(); $bourse = $bdd->query("SELECT dispo FROM $table_bourse_ressources;"); $bdd->deconnexion(); if (!empty($credits)) { //TODO Equivalence non prouvée entre $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7); et $credits/bourse_calcPrixBase($bourse[0]["dispo"], 1) * 0.7; dans le but de ne donner que 70% des points $metal += $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7); $cristal += $credits/bourse_calcPrixBase($bourse[1]["dispo"], 0.7); $hydrogene += $credits/bourse_calcPrixBase($bourse[2]["dispo"], 0.7); } $points = bourse_calcPrixBase($bourse[0]["dispo"], $metal); $points += bourse_calcPrixBase($bourse[1]["dispo"], $cristal); $points += bourse_calcPrixBase($bourse[2]["dispo"], $hydrogene); if ($demolition) { $this->points -= intval($points); } else { $this->points += intval($points); } $this->addModifUser("points"); } public function addCredits($credits) { $this->credits += $credits; $this->addModifUser("credits"); return 0; } public function addModifUser($modif) { if (!in_array($modif, $this->modifUser)) { $this->modifUser[] = $modif; } } /** * Destructeur * * @return void * @access public */ public function __destruct() { global $table_user; $out = array(); $bdd = new BDD(); foreach ($this->modifUser as $key => $modif) { //On gère les champs variables tableaux if (is_array($modif)) { $calc = dDonnees::nameVAR($modif[0]); if (!isset(${$calc.'VAR'})) { global ${$calc.'VAR'}; } if (empty(${$calc.'VAR'})) { trigger_error('Impossible de trouver les données pour '.$modif[0], E_USER_ERROR); } $out[] = ${$calc.'VAR'}[$modif[1]]." = ".$this->{$modif[0]}[$modif[1]]; } elseif ($modif == "force") { $out[] = " "; } elseif (!is_array($this->{$modif})) { $bdd->escape($this->{$modif}); if (is_int($this->{$modif}) || is_float($this->{$modif})) { $out[] .= $modif." = ".$this->{$modif}; } else { $out[] .= $modif." = '".$this->{$modif}."'"; } } else { if ($modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") { $prep = serialize($this->{$modif}); $bdd->escape($prep); $out[] = $modif." = '$prep'"; } else { $calc = dDonnees::nameVAR($modif); if (!isset(${$calc.'VAR'})) { global ${$calc.'VAR'}; } foreach ($this->{$modif} as $j => $value) { $out[] = ${$calc.'VAR'}[$j]." = ".$value; } } } } if (!empty($out)) { $sql = "UPDATE $table_user SET ".implode(', ', $out)." WHERE id = ".$this->id_user.";"; if (DEBUG) { echo '

'.$sql; } $bdd->query($sql); if ($bdd->affected() != 1) { elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : out = ".serialize($out)." avec l'ID ".$this->id_user, 2); } } $bdd->deconnexion(); } }