/** * Activation du compte. * @author Cam * @return tpl */ protected function main() { if (empty($_GET['mid']) || empty($_GET['ca'])) { header('Location: ./'); } if (is_logged_in()) { redir(Nw::$lang['common']['already_connected'], false, './'); } $return_valid = false; inc_lib('users/mbr_act_exists'); if (mbr_act_exists($_GET['mid'], $_GET['ca'])) { inc_lib('users/get_info_mbr'); $donnees_compte = get_info_mbr($_GET['mid']); if ($donnees_compte['u_active'] == 0) { inc_lib('users/valid_account'); inc_lib('admin/gen_cachefile_nb_members'); valid_account($_GET['mid']); gen_cachefile_nb_members(); generate_members_sitemap(); redir(Nw::$lang['users']['compte_valide'], true, './'); $return_valid = true; } } if (!$return_valid) { redir(Nw::$lang['users']['compte_valid_error'], false, './'); } }
function add_mbr($pseudo, $password, $email, $identifier = '', $valide = 0) { $bf_token = 'jJ_=éZAç1l'; $ft_token = 'ù%*àè1ç0°dezf'; $key_alea_code_activate = md5(uniqid(mt_rand())); // Enregistrement de l'utilisateur dans la base de données Nw::$DB->query('INSERT INTO ' . Nw::$prefix_table . 'members (u_pseudo, u_alias, u_identifier, u_password, u_email, u_group, u_date_register, u_active, u_code_act, u_ip) VALUES(\'' . insertBD(trim($pseudo)) . '\', \'' . rewrite(trim($pseudo)) . '\', \'' . insertBD(trim($identifier)) . '\', \'' . insertBD(sha1($bf_token . trim($password) . $ft_token)) . '\', \'' . insertBD(trim($email)) . '\', 4, NOW(), ' . intval($valide) . ', \'' . insertBD($key_alea_code_activate) . '\', \'' . get_ip() . '\')') or Nw::$DB->trigger(__LINE__, __FILE__); $id_new_membre = Nw::$DB->insert_id; $identifiant_unique = md5($id_new_membre . uniqid(rand(), true)); $lien_activation = Nw::$site_url . 'users-32.html?mid=' . $id_new_membre . '&ca=' . $key_alea_code_activate; Nw::$DB->query('UPDATE ' . Nw::$prefix_table . 'members SET u_ident_unique = \'' . Nw::$DB->real_escape_string($identifiant_unique) . '\' WHERE u_id = ' . intval($id_new_membre)) or Nw::$DB->trigger(__LINE__, __FILE__); Nw::$DB->query('INSERT INTO ' . Nw::$prefix_table . 'members_stats (s_id_membre) VALUES(' . intval($id_new_membre) . ')') or Nw::$DB->trigger(__LINE__, __FILE__); inc_lib('users/mail2gd'); mail2gd($identifiant_unique, trim($email)); inc_lib('newsletter/add_abonnement'); add_abonnement(trim($email), $id_new_membre); // Envoie d'email de validation if ($valide == 0) { $txt_mail = sprintf(Nw::$lang['users']['mail_confirm_insc'], $pseudo, Nw::$site_url, Nw::$site_name, $lien_activation, $lien_activation, $lien_activation); @envoi_mail(trim($email), sprintf(Nw::$lang['users']['confirm_inscription'], Nw::$site_name), $txt_mail); } else { // Le compte est confirmé, on met à jour le nbr de membres inc_lib('admin/gen_cachefile_nb_members'); gen_cachefile_nb_members(); generate_members_sitemap(); } return $id_new_membre; }