Example #1
0
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));
 }