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; }
protected function main() { $this->set_title(Nw::$lang['newsletter']['sabonner']); $this->add_css('code.css'); $this->set_tpl('newsletter/abonnement.html'); $this->set_filAriane(Nw::$lang['newsletter']['sabonner']); $this->load_lang_file('users'); $is_already_abonne = false; $id_membre_login = is_logged_in() ? Nw::$dn_mbr['u_id'] : 0; $phrase_abonne = ''; $token_url = ''; $email_url = ''; if (is_logged_in()) { inc_lib('newsletter/count_abonnement'); $is_already_abonne = count_abonnement('a_id_membre = ' . intval(Nw::$dn_mbr['u_id'])); if ($is_already_abonne == 1) { inc_lib('newsletter/get_info_abonnement'); $donnees_abo = get_info_abonnement('a_id_membre = ' . intval(Nw::$dn_mbr['u_id'])); $phrase_abonne = sprintf(Nw::$lang['newsletter']['already_register'], $donnees_abo['a_email']); $token_url = $donnees_abo['a_token']; $email_url = urlencode($donnees_abo['a_email']); } } // S'enregistrer à la newsletter if (isset($_POST['submit']) && !empty($_POST['email_newsletter']) && filter_var($_POST['email_newsletter'], FILTER_VALIDATE_EMAIL)) { inc_lib('newsletter/count_abonnement'); $is_already_abonne = count_abonnement('a_email = \'' . insertBD(trim($_POST['email_newsletter'])) . '\''); // Cette adresse email n'est pas déjà enregistrée dans la bdd if ($is_already_abonne == 0) { inc_lib('newsletter/add_abonnement'); add_abonnement($_POST['email_newsletter'], $id_membre_login); redir(Nw::$lang['newsletter']['register_r_ok'], true, 'newsletter.html'); } else { redir(Nw::$lang['newsletter']['email_used'], false, 'newsletter.html'); } } Nw::$tpl->set(array('IS_ABONNE' => $is_already_abonne, 'PHRASE_ABO' => $phrase_abonne, 'TOKEN' => $token_url, 'EMAIL' => $email_url)); }