$sql_data['admin_dateformat'] = $nl_config['date_format']; $sql_data['admin_level'] = USER; if (!$db->build(SQL_INSERT, ADMIN_TABLE, $sql_data)) { trigger_error('Impossible d\'ajouter le nouvel administrateur', ERROR); } $mailer = new Mailer(WA_ROOTDIR . '/language/email_' . $nl_config['language'] . '/'); if ($nl_config['use_smtp']) { $mailer->smtp_path = WAMAILER_DIR . '/'; $mailer->use_smtp($nl_config['smtp_host'], $nl_config['smtp_port'], $nl_config['smtp_user'], $nl_config['smtp_pass']); } $mailer->set_charset($lang['CHARSET']); $mailer->set_format(FORMAT_TEXTE); $mailer->set_from($admindata['admin_email'], $admindata['admin_login']); $mailer->set_address($new_email); $mailer->set_subject(sprintf($lang['Subject_email']['New_admin'], $nl_config['sitename'])); $mailer->use_template('new_admin', array('PSEUDO' => $new_login, 'SITENAME' => $nl_config['sitename'], 'PASSWORD' => $new_pass, 'LINK_ADMIN' => make_script_url('admin/index.php'))); if (!$mailer->send()) { trigger_error(sprintf($lang['Message']['Failed_sending2'], $mailer->msg_error), ERROR); } $output->redirect('./admin.php', 6); $message = $lang['Message']['Admin_added']; $message .= '<br /><br />' . sprintf($lang['Click_return_profile'], '<a href="' . sessid('./admin.php') . '">', '</a>'); $message .= '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . sessid('./index.php') . '">', '</a>'); $output->message($message); } } $output->addHiddenField('mode', 'adduser'); $output->addHiddenField('sessid', $session->session_id); $output->page_header(); $output->set_filenames(array('body' => 'add_admin_body.tpl')); $output->assign_vars(array('L_TITLE' => $lang['Add_user'], 'L_EXPLAIN' => nl2br($lang['Explain']['admin']), 'L_LOGIN' => $lang['Login_new_user'], 'L_EMAIL' => $lang['Email_new_user'], 'L_EMAIL_NOTE' => nl2br($lang['Email_note']), 'L_VALID_BUTTON' => $lang['Button']['valid'], 'L_CANCEL_BUTTON' => $lang['Button']['cancel'], 'LOGIN' => htmlspecialchars($new_login), 'EMAIL' => htmlspecialchars($new_email), 'S_HIDDEN_FIELDS' => $output->getHiddenFields()));
function subscribe() { global $db, $nl_config, $lang; $db->beginTransaction(); if (!$this->hasAccount) { $sql_data = array('abo_email' => $this->account['email'], 'abo_pseudo' => $this->account['pseudo'], 'abo_pwd' => md5($this->account['code']), 'abo_status' => $this->account['status']); @(include WA_ROOTDIR . '/includes/tags.inc.php'); foreach ($other_tags as $tag) { if (!empty($tag['field_name']) && !empty($_REQUEST[$tag['field_name']])) { $this->account['tags'][$tag['column_name']] = $_REQUEST[$tag['field_name']]; } else { if (!empty($_REQUEST[$tag['column_name']])) { $this->account['tags'][$tag['column_name']] = $_REQUEST[$tag['column_name']]; } } } if (!$db->build(SQL_INSERT, ABONNES_TABLE, $sql_data)) { trigger_error('Impossible d\'insérer une nouvelle entrée dans la table des abonnés', ERROR); return false; } $this->account['abo_id'] = $db->lastInsertId(); } if (!$this->isRegistered) { $confirmed = SUBSCRIBE_NOT_CONFIRMED; if (!$this->hasAccount && $this->listdata['confirm_subscribe'] == CONFIRM_NONE) { $confirmed = SUBSCRIBE_CONFIRMED; } if ($this->hasAccount && $this->account['status'] == ABO_ACTIF && $this->listdata['confirm_subscribe'] != CONFIRM_ALWAYS) { $confirmed = SUBSCRIBE_CONFIRMED; } $sql = "INSERT INTO " . ABO_LISTE_TABLE . " (abo_id, liste_id, format, register_key, register_date, confirmed) \n\t\t\t\tVALUES({$this->account['abo_id']}, {$this->listdata['liste_id']}, {$this->format}, '{$this->account['code']}', {$this->account['date']}, {$confirmed})"; if (!$db->query($sql)) { trigger_error('Impossible d\'insérer une nouvelle entrée dans la table des abonnés[2]', ERROR); return false; } } $db->commit(); if (!$this->hasAccount) { // // Une confirmation est envoyée si la liste le demande // $confirm = !($this->listdata['confirm_subscribe'] == CONFIRM_NONE); } else { // // Une confirmation est envoyée si la liste demande une confirmation même // si l'email a été validé dans une précédente inscription à une autre liste, // et également si l'inscription est faite mais n'a pas encore été confirmée. // $confirm = $this->isRegistered || $this->listdata['confirm_subscribe'] == CONFIRM_ALWAYS; } if (!$confirm) { $this->update_stats(); $this->alert_admin(true); $message = $lang['Message']['Subscribe_2']; $email_tpl = $this->listdata['use_cron'] ? 'welcome_cron1' : 'welcome_form1'; } else { $name = $this->hasAccount && $this->isRegistered ? 'Reg_not_confirmed' : 'Subscribe_1'; $message = sprintf($lang['Message'][$name], $this->listdata['limitevalidate']); $email_tpl = $this->listdata['use_cron'] ? 'welcome_cron2' : 'welcome_form2'; } $this->mailer->clear_all(); $this->mailer->set_from($this->listdata['sender_email'], unhtmlspecialchars($this->listdata['liste_name'])); $this->mailer->set_address($this->account['email']); $this->mailer->set_subject(sprintf($lang['Subject_email']['Subscribe'], $nl_config['sitename'])); $this->mailer->set_priority(1); $this->mailer->set_return_path($this->listdata['return_email']); $this->mailer->use_template($email_tpl, array('LISTE' => unhtmlspecialchars($this->listdata['liste_name']), 'SITENAME' => $nl_config['sitename'], 'URLSITE' => $nl_config['urlsite'], 'SIG' => $this->listdata['liste_sig'])); if ($this->listdata['use_cron']) { $this->mailer->assign_tags(array('EMAIL_NEWSLETTER' => $this->liste_email)); } else { $this->mailer->assign_tags(array('LINK' => $this->make_link())); } if (!$this->hasAccount || $this->isRegistered) { $this->mailer->assign_block_tags('password', array('CODE' => $this->account['code'])); } if ($nl_config['enable_profil_cp']) { $this->mailer->assign_block_tags('enable_profil_cp', array('LINK_PROFIL_CP' => make_script_url('profil_cp.php'))); } if (!$this->mailer->send()) { $this->message = $lang['Message']['Failed_sending']; return false; } $this->message = $message; }
/** * Location() * * Fonction de redirection du script avec url absolue, d'apr�s les * sp�cifications HTTP/1.1 * * @param string $url Url relative de redirection * * @return void */ function Location($url) { global $db, $output; if (function_exists('sessid') && defined('IN_ADMIN')) { $url = sessid($url); } // // On ferme la connexion � la base de donn�es, si elle existe // if (isset($db) && is_object($db)) { $db->close(); } $use_refresh = preg_match("#Microsoft|WebSTAR|Xitami#i", server_info('SERVER_SOFTWARE')); $absolute_url = make_script_url() . (defined('IN_ADMIN') ? 'admin/' : ''); $absolute_url .= unhtmlspecialchars($url); header(($use_refresh ? 'Refresh: 0; URL=' : 'Location: ') . $absolute_url); // // Si la fonction header() ne donne rien, on affiche une page de redirection // $message = '<p>If your browser doesn\'t support meta redirect, click <a href="' . $url . '">here</a> to go on next page.</p>'; $output->redirect($url, 0); $output->basic($message, 'Redirection'); }