Convert($string, $input_encoding, $output_encoding); } } function add_subscriber($cnx, $table_email, $list_id, $add_addr, $table_email_deleted) { $add_addr = trim(strtolower($add_addr)); $hash = @current($cnx->query("SELECT hash FROM ".$table_email." WHERE list_id='".($cnx->CleanInput($list_id))."' AND email='".($cnx->CleanInput($add_addr))."'")->fetch()); if($hash==''){ $black_listed = @current($cnx->query("SELECT email FROM ".$table_email_deleted." WHERE list_id='".($cnx->CleanInput($list_id))."' AND email='".($cnx->CleanInput($add_addr))."'")->fetch()); if($black_listed==''){ $hash = unique_id($add_addr); if($cnx->query("INSERT INTO ".$table_email." (`email`, `list_id`, `hash`) VALUES ('".($cnx->CleanInput($add_addr))."', '".($cnx->CleanInput($list_id))."', '".($cnx->CleanInput($hash))."')")){ return 2; } else { return true; } } else { return 3; } } else { return -1; } } function addSubscriber($cnx, $table_email, $table_temp, $list_id, $addr, $hash, $table_email_deleted) { $addr = trim(strtolower(urldecode($addr))); $email = @current($cnx->query("SELECT email FROM $table_temp WHERE list_id='$list_id' AND email='$addr' AND hash='$hash'")->fetch()); if ($email!='') { $cnx->query("INSERT INTO $table_email (`email`, `list_id` , `hash`) VALUES ('$addr', '$list_id','$hash')"); $cnx->query("DELETE FROM $table_temp WHERE email='$addr' AND list_id='$list_id' AND hash='$hash'"); $cnx->query("DELETE FROM $table_email_deleted WHERE email='$addr' AND list_id='$list_id'"); return true; } else { return false; } } function addSubscriberMod($cnx, $table_email, $ref_sub_table, $list_id, $addr) { $addr = trim(strtolower($addr)); $this_mail = $cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'"); if ((!$this_mail)||count($this_mail)>0) { return -1; } $this_mail = $cnx->query("SELECT email FROM $ref_sub_table WHERE list_id='$list_id' AND email='$addr'"); if ((!$this_mail)||count($this_mail)>0) { return -1; } if (!$cnx->query("INSERT INTO $ref_sub_table (`email`, `list_id`) VALUES ('$addr', '$list_id')")) { return -1; } return true; } function addSubscriberDirect($cnx, $table_email, $list_id, $addr) { $addr = trim(strtolower($addr)); $x = $cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'")->fetchAll(); if (count($x)>0) { return false; } else { $hash = unique_id($addr); if ($cnx->query("INSERT INTO ".$table_email." (`email`, `list_id` , `hash`) VALUES ('$addr', '$list_id','$hash')")) { $cnx->query("DELETE FROM ".$table_email."_deleted WHERE email='$addr' AND list_id='$list_id'"); return $hash; } else return false; } } function addSubscriberTemp($cnx, $table_email, $table_temp, $list_id, $addr) { $addr = trim(strtolower($addr)); $x = $cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'")->fetchAll(); if (count($x)>0) { return false; } $x = $cnx->query("SELECT email FROM $table_temp WHERE list_id='$list_id' AND email='$addr'")->fetchAll(); if (count($x)>0) { return false; } $hash = unique_id($addr); if($_SESSION['timezone']!=''){ date_default_timezone_set($_SESSION['timezone']); }elseif(file_exists('include/config.php')) { date_default_timezone_set('Europe/Paris'); } $date = date("Ymd"); if (!$cnx->query("INSERT INTO $table_temp (`email`, `list_id` , `hash` , `date`) VALUES ('$addr', '$list_id','$hash' , '$date')")) { return false; } return $hash; } function append_cronjob($command){ if(is_string($command)&&!empty($command)){ exec("crontab -l | { cat; echo '$command'; } |crontab -",$output,$code_retour); } if( $code_retour !== 0 ) { return false; } else { return true; } } function build_sorter($key) { return function ($a, $b) use ($key) { return strnatcmp($a[$key], $b[$key]); }; } function checkAdminAccess($cnx, $conf_pass, $admin_pass, $admin_mail) { if (!empty($_COOKIE['PMNLNG_admin_password']) && ($_COOKIE['PMNLNG_admin_password'] == $conf_pass)) { return true; } else { if ($conf_pass == md5($admin_pass)) { setcookie("PMNLNG_admin_password", md5($admin_pass)); return true; } else { return false; } } } function checkVersion(){ $VL=file_get_contents('VERSION'); if($VL===FALSE) { echo 'fichier version non détecté'; } else { $header=checkVersionCurl(); if(version_compare($header['content'],$VL,'>')) { echo '
  • Version '.$header['content'].' disponible !
  • '; } } } function checkVersionCurl() { (function_exists('curl_init')) ? '' : die('cURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini'); $h[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; $h[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; $h[] = "Cache-Control: max-age=0"; $h[] = "Connection: keep-alive"; $h[] = "Keep-Alive: 300"; $h[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $h[] = "Accept-Language: en-us,en;q=0.5"; $h[] = "Pragma: "; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'https://www.phpmynewsletter.com/versions/current_version'); curl_setopt($curl, CURLOPT_USERAGENT, 'Check Version PhpMyNewsLetter'); curl_setopt($curl, CURLOPT_HTTPHEADER, $h); curl_setopt($curl, CURLOPT_REFERER, 'https://www.phpmynewsletter.com/versions/current_version'); curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($curl, CURLOPT_AUTOREFERER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 60); $header['errno'] = curl_errno($curl); $header['errmsg'] = curl_error($curl); $header['content'] = curl_exec($curl); curl_close($curl); return $header; } function clean_old_tmp_files(){ foreach (glob(PREFIX_DIR.'/'.PREFIX."*") as $filename){ $age = time() - filemtime($filename); if ($age > TIME_LIMIT) { unlink($filename); } } } function createNewsletter($cnx,$table_listsconfig,$newsletter_name,$from, $from_name,$subject,$header,$footer, $subscription_subject,$subscription_body, $welcome_subject,$welcome_body,$quit_subject,$quit_body,$preview_addr) { $sql = "SELECT list_id FROM $table_listsconfig ORDER BY list_id DESC"; $newidTab = $cnx->SqlRow($sql); $newid = $newidTab['list_id'] + 1; $newsletter_name = escape_string($cnx,$newsletter_name); $from = escape_string($cnx,$from); $from_name = escape_string($cnx,$from_name); $subject = escape_string($cnx,$subject); $header = escape_string($cnx,$header); $footer = escape_string($cnx,$footer); $subscription_subject = escape_string($cnx,$subscription_subject); $subscription_body = escape_string($cnx,$subscription_body); $welcome_subject = escape_string($cnx,$welcome_subject); $welcome_body = escape_string($cnx,$welcome_body); $quit_subject = escape_string($cnx,$quit_subject); $quit_body = escape_string($cnx,$quit_body); $preview_addr = escape_string($cnx,$preview_addr); if (!$cnx->query("INSERT INTO $table_listsconfig (`list_id` , `newsletter_name` , `from_addr` , `from_name` , `subject` , `header` , `footer` , `subscription_subject` , `subscription_body`, `welcome_subject` , `welcome_body` , `quit_subject` ,`quit_body`,`preview_addr`) VALUES ($newid,$newsletter_name, $from, $from_name, $subject, $header, $footer, $subscription_subject, $subscription_body,$welcome_subject, $welcome_body, $quit_subject, $quit_body, $preview_addr)")) { return false; } else { return $cnx->lastInsertId(); } } function CronID() { $len = 5; $base='ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz'; $max=strlen($base)-1; $activatecode=''; mt_srand((double)microtime()*1000000); while (strlen($activatecode)<$len+1){ $activatecode.=$base{mt_rand(0,$max)}; } return 'pmnl2_'.$activatecode; } function delete_subscriber($cnx, $table_email, $list_id, $del_addr, $table_email_deleted, $motif) { $CPTID = $cnx->query("SELECT count(id) AS CPTID FROM $table_email WHERE list_id = ".$list_id." AND email = ".escape_string($cnx,$del_addr))->fetch(); if ( $CPTID['CPTID'] > 0 ) { if (!$cnx->query("INSERT IGNORE INTO $table_email_deleted SELECT * FROM $table_email WHERE email=".escape_string($cnx,$del_addr)." AND list_id=".$list_id)){ return false; } else { $cnx->query("UPDATE $table_email_deleted SET error='Y', type='".($motif!=''?$motif:'unsub')."' WHERE email=".escape_string($cnx,$del_addr)." AND list_id=".$list_id); if (!$cnx->query("DELETE FROM $table_email WHERE list_id = ".$list_id." AND email=".escape_string($cnx,$del_addr))) { return false; } else { return true; } } } else { return 5; } } function delete_subscriber_tmp($cnx, $table_email, $list_id, $del_addr, $table_email_deleted, $motif) { $CPTID = $cnx->query("SELECT count(*) AS CPTID FROM $table_email WHERE list_id = ".$list_id." AND email = ".escape_string($cnx,$del_addr))->fetch(); if ( $CPTID['CPTID'] > 0 ) { if (!$cnx->query("INSERT IGNORE INTO $table_email_deleted (email, list_id, hash) SELECT email, list_id, hash FROM $table_email WHERE email=".escape_string($cnx,$del_addr)." AND list_id=".$list_id)){ return false; } else { $cnx->query("UPDATE $table_email_deleted SET error='Y', type='".($motif!=''?$motif:'unsub')."' WHERE email=".escape_string($cnx,$del_addr)." AND list_id=".$list_id); if (!$cnx->query("DELETE FROM $table_email WHERE list_id = ".$list_id." AND email=".escape_string($cnx,$del_addr))) { return false; } else { return true; } } } else { return 5; } } function force_subscriber($cnx, $table_email_tmp, $list_id, $del_addr, $table_email, $hash) { $CPTID = $cnx->query("SELECT count(*) AS CPTID FROM $table_email_tmp WHERE list_id = '".$list_id."' AND email = ".escape_string($cnx,$del_addr)."")->fetch(); if ( $CPTID['CPTID'] > 0 ) { if (!$cnx->query("INSERT IGNORE INTO $table_email (list_id,email,hash) VALUES (".escape_string($cnx,$list_id).",".escape_string($cnx,$del_addr).",".escape_string($cnx,$hash).")")) { return false; } else { if (!$cnx->query("DELETE FROM $table_email_tmp WHERE list_id = '$list_id' AND email='$del_addr'")) { return false; } else { return true; } } } else { return 5; } } function deleteArchive($cnx,$table_archives, $msg_id) { if (!$cnx->query("DELETE FROM $table_archives WHERE id='$msg_id'")) { return false; } else { return true; } } function deleteModMsg($cnx, $table_mod, $msg_id) { if ($cnx->query("DELETE FROM $table_mod WHERE id='$msg_id'")) { return true; } else { return -1; } } function deleteNewsletter($cnx, $table_list, $table_archives, $table_email, $table_temp, $table_send, $table_tracking, $table_autosave, $list_id) { if (!$cnx->query("DELETE FROM $table_list WHERE list_id='$list_id'")) { return false; } if (!$cnx->query("DELETE FROM $table_email WHERE list_id='$list_id'")) { return false; } if (!$cnx->query("DELETE FROM $table_temp WHERE list_id='$list_id'")) { return false; } if (!$cnx->query("DELETE FROM $table_archives WHERE list_id='$list_id'")) { return false; } if (!$cnx->query("DELETE $table_tracking,$table_send FROM $table_tracking INNER JOIN $table_send WHERE $table_tracking.subject = $table_send.id_mail AND $table_send.id_list = '$list_id'")) { return false; } if (!$cnx->query("DELETE FROM $table_send WHERE id_list = '$list_id'")) { return false; } if (!$cnx->query("DELETE FROM $table_autosave WHERE list_id = '$list_id'")) { return false; } return true; } function DelMsgTemp($cnx, $list_id, $table){ if (!$cnx->query("DELETE FROM $table WHERE list_id='$list_id'")) { return false; } } function export_subscribers($cnx, $table_email, $list_id) { $x = $cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND error='N'")->fetchAll(PDO::FETCH_ASSOC); if (!$x){ die('export error'); } else { header("Content-disposition: filename=listing_export_liste_".sprintf("%'.03d", $list_id)."_".date('Y-m-d-H-i-s').".txt"); header("Content-type: application/octetstream"); header("Pragma: no-cache"); header("Expires: 0"); if (strpos($_SERVER["HTTP_USER_AGENT"],"MSIE")){ $crlf = "\r\n"; } else { $crlf = "\n"; } foreach ($x as $item) { print $item['email'].$crlf; } exit(); } } function escape_string($cnx, $string) { if (get_magic_quotes_gpc()) { $string = stripslashes($string); } if (!is_numeric($string)) { $string = $cnx->quote($string); } return $string; } function flushTempTable($cnx, $temp_table, $limit) { if($_SESSION['timezone']!=''){ date_default_timezone_set($_SESSION['timezone']); }elseif(file_exists('include/config.php')) { date_default_timezone_set('Europe/Paris'); } $date = date("Y/m/d"); $elts = explode("/", $date); $y = $elts[0]; $m = $elts[1]; $d = $elts[2]; $before = mktime(0, 0, 0, $m, $d - $limit, $y); $before = date("Ymd", $before); if($cnx->query("DELETE FROM $temp_table where date < '$before'")){ return true; } else { return false; } } function get_cpt_send($cnx, $row_config_globale, $list_id) { $rowCpt = $cnx->SqlRow("SELECT cpt FROM ".$row_config_globale['table_send'] ." WHERE id_list = '$list_id' ORDER BY id_mail DESC LIMIT 1"); $cpt_send = $rowCpt['cpt']; $rowCpt = $cnx->SqlRow("SELECT count(*) AS CPTMAIL FROM ".$row_config_globale['table_email']." WHERE list_id = '$list_id' AND campaign_id>0"); $cpt_mail = $rowCpt['CPTMAIL']; return (int)$cpt_mail-(int)$cpt_send; } function get_first_newsletter_id($cnx,$lists_table) { $x = $cnx->query("SELECT list_id FROM $lists_table LIMIT 1")->fetch(); if (count($x) == 0){ return ''; } else { return $x['list_id']; } } function get_id_send($cnx,$list_id,$table_send){ return $cnx->query("SELECT count(id) AS CPTID FROM $table_send WHERE id_list = '".$list_id."'")->fetch(); } function get_message($cnx, $table_archive, $msg_id) { $x = $cnx->query("SELECT type, subject, message, sender_email, preheader FROM $table_archive WHERE id='$msg_id'")->fetch(PDO::FETCH_ASSOC); if(!$x){ return -1; } else { return $x; } } function get_message_preview($cnx, $table_autosave, $list_id) { $x = $cnx->query("SELECT type, subject, textarea FROM $table_autosave WHERE list_id='$list_id'")->fetch(PDO::FETCH_ASSOC); if(!$x){ return -1; } else { return $x; } } function get_newsletter_name($cnx, $lists_table, $list_id) { $this_name = $cnx->query("SELECT newsletter_name FROM $lists_table WHERE list_id = '$list_id'")->fetch(); if (count($this_name) == 0){ return -1; } else { return $name = $this_name['newsletter_name']; } } function get_newsletter_total_subscribers($cnx, $email_table, $list_id, $msg_id) { $row = $cnx->query("SELECT COUNT( email ) AS CPT FROM $email_table WHERE list_id ='$list_id' AND ERROR ='N' AND ( campaign_id != '$msg_id' OR campaign_id IS NULL)" )->fetch(); return $row['CPT']; } function get_relative_path($filename) { return preg_replace("/^.*\/(".PREFIX_DIR."\/.*)/", "$1", $filename); } function get_stats_send($cnx,$list_id,$param_global){ return $cnx->query("SELECT a.id, DATE_FORMAT(a.date,'%Y-%m-%d') as dt, a.subject, s.cpt, s.error, s.`leave`,s.id_mail, ( SELECT COUNT(DISTINCT(hash),subject) FROM ".$param_global['table_tracking']." WHERE subject = a.id ) AS TID, ( SELECT COUNT(distinct(tr.hash)) FROM ".$param_global['table_tracking']." tr, ".$param_global['table_email_deleted']." em WHERE subject = a.id AND tr.hash = em.hash ) AS TIDUNSUB, ( SELECT SUM(open_count) FROM ".$param_global['table_send']." WHERE id_mail = a.id AND id_list = '".$list_id."' ) AS TOPEN, ( SELECT SUM(cpt) FROM ".$param_global['table_track_links']." WHERE list_id = '".$list_id."' AND msg_id=a.id ) AS CPT_CLICKED FROM ".$param_global['table_send']." s LEFT JOIN ".$param_global['table_archives']." a ON a.id = s.id_mail LEFT JOIN ".$param_global['table_tracking']." t ON a.id = t.subject WHERE a.list_id = '".$list_id."' GROUP BY a.id ORDER BY a.id DESC LIMIT 30")->fetchAll(PDO::FETCH_ASSOC); } function get_stats_send_global($cnx,$param_global){ return $cnx->query("SELECT ( SELECT COUNT(id) FROM ".$param_global['table_send']." ) AS TSEND, ( SELECT SUM(cpt) FROM ".$param_global['table_send']." ) AS TMAILS, ( SELECT COUNT(id) FROM ".$param_global['table_tracking']." ) AS TID, ( SELECT SUM(error) FROM ".$param_global['table_send']." ) AS TERROR, ( SELECT SUM(`leave`) FROM ".$param_global['table_send']." ) AS TLEAVE, ( SELECT SUM(open_count) FROM ".$param_global['table_tracking']." ) AS TOPEN, ( SELECT SUM(cpt) FROM ".$param_global['table_track_links']." ) AS CPT_CLICKED FROM ".$param_global['table_send']." LIMIT 1")->fetchAll(PDO::FETCH_ASSOC); } function get_stats_send_global_by_list($cnx,$param_global,$list_id){ return $cnx->query("SELECT ( SELECT COUNT(id) FROM ".$param_global['table_send']." WHERE id_list=$list_id ) AS TSEND, ( SELECT SUM(cpt) FROM ".$param_global['table_send']." WHERE id_list=$list_id ) AS TMAILS, ( SELECT COUNT(DISTINCT(hash),subject) FROM ".$param_global['table_tracking']." WHERE subject IN (SELECT id FROM ".$param_global['table_archives']." WHERE list_id=$list_id) ) AS TID, ( SELECT SUM(error) FROM ".$param_global['table_send']." WHERE id_list=$list_id ) AS TERROR, ( SELECT SUM(`leave`) FROM ".$param_global['table_send']." WHERE id_list=$list_id ) AS TLEAVE, ( SELECT SUM(open_count) FROM ".$param_global['table_tracking']." WHERE subject IN (SELECT id FROM ".$param_global['table_archives']." WHERE list_id=$list_id) ) AS TOPEN, ( SELECT SUM(cpt) FROM ".$param_global['table_track_links']." WHERE list_id=$list_id ) AS CPT_CLICKED FROM ".$param_global['table_send']." LIMIT 1")->fetchAll(PDO::FETCH_ASSOC); } function get_subscribers($cnx, $table_email, $list_id) { return $subscribers = $cnx->query("SELECT email FROM $table_email WHERE list_id = '$list_id' ORDER BY email ASC")->fetchAll(PDO::FETCH_ASSOC); } function getAddress($cnx,$table_email,$list_id,$begin='',$limit='',$msg_id) { $limite=(isset($limit))?" LIMIT 0,$limit":""; return $Addr = $cnx->query("SELECT id,email,hash FROM $table_email WHERE list_id = '$list_id' AND error='N' AND ( campaign_id != '$msg_id' OR campaign_id IS NULL) ORDER BY id ASC $limite")->fetchAll(PDO::FETCH_ASSOC); } function getArchiveMsg($cnx, $table_archives, $msg_id,$token,$list,$type_user=false,$droit_liste=0) { if (empty($offset)) $offset = 0; $row = $cnx->query("SELECT id, date, type, subject, message, list_id FROM $table_archives WHERE id='$msg_id'")->fetch(PDO::FETCH_ASSOC); if (count($row) == 0){ return -1; } else { $subject = htmlspecialchars($row['subject']); $subject = stripslashes($subject); echo "
    Sujet : \"" . $subject . "\", envoyé le : " . $row['date'] . "

    "; echo "
    "; echo "
    "; echo "
    "; echo "
    Utiliser ce message comme modèle pour nouvelle rédaction avec la liste : "; echo ""; echo ""; echo ""; echo ""; echo " "; echo "
    "; } } function getArchivesSelectList($cnx, $table_archives, $msg_id = '', $form_name = 'archive_form2',$list_id) { $row = $cnx->query("SELECT id, date, subject FROM $table_archives WHERE list_id='$list_id' ORDER BY date DESC")->fetchAll(PDO::FETCH_ASSOC); if (count($row) == 0){ return -1; } else { $archive = ""; echo $archive; } } function getConfig($cnx, $list_id, $list_table) { $x = $cnx->query("SELECT * FROM $list_table WHERE list_id='$list_id'")->fetch(PDO::FETCH_ASSOC); if(!$x){ return -1; } else { return $x; } } function getConfigSender($cnx, $list_table, $email) { $x = $cnx->query("SELECT * FROM $list_table WHERE email='".($cnx->CleanInput($email))."'")->fetch(PDO::FETCH_ASSOC); if(!$x){ return -1; } else { return $x; } } function getEmail($cnx, $mail, $table_email) { $x = $cnx->query("SELECT email FROM $table_email WHERE email like '%$mail%' LIMIT 0,5")->fetchAll(PDO::FETCH_ASSOC); if(count($x)>0){ return $x; } } function getLanguageList($selected) { $ret = ""; $langfiles = array(); if ($handle = opendir("include/lang/")) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && preg_match("/([a-z_]+)\.php$/i", $file, $match)) { array_push($langfiles, str_replace("_", " ", $match[1])); } } closedir($handle); } asort($langfiles); foreach ($langfiles as $value) { $ret .= "\t\n"; } return $ret; } function getlocale($category) { return setlocale($category, NULL); } function getMsgById($cnx,$id,$table) { $x = $cnx->query("SELECT * FROM $table WHERE id='$id'")->fetch(PDO::FETCH_ASSOC); if(!$x){ return -1; } else { return $x; } } function getMsgDraft($cnx, $list_id, $table_draft) { $NB = $cnx->query("SELECT COUNT(*) AS NB FROM $table_draft WHERE list_id = '$list_id'")->fetch(PDO::FETCH_ASSOC); if(!$NB){ return -1; } else { return $NB; } } function getSenders($cnx, $table_senders, $sender='') { $row = $cnx->query("SELECT name_organisation,email FROM $table_senders ORDER BY 1 ASC")->fetchAll(PDO::FETCH_ASSOC); if (count($row) == 0){ return -1; } else { $liste_senders = ""; return $liste_senders; } } function getSendersFull($cnx, $table_senders, $table_archives) { $row = $cnx->query("SELECT A.subject,A.id,S.id_sender,S.name_organisation,S.email,S.smtp FROM $table_senders S LEFT JOIN $table_archives A ON S.last_send=A.id ORDER BY 1 ASC")->fetchAll(PDO::FETCH_ASSOC); if (count($row) == 0){ return false; } else { return $row; } } function getUsersFull($cnx, $table_users, $table_listes) { $row = $cnx->query("SELECT U.*, L.newsletter_name FROM $table_users U LEFT JOIN $table_listes L ON U.liste=L.list_id ORDER BY id_user ASC")->fetchAll(PDO::FETCH_ASSOC); if (count($row) == 0){ return false; } else { return $row; } } function getOneSenderFull($cnx, $table_senders, $account) { $row = $cnx->query("SELECT * FROM $table_senders WHERE email = '$account'")->fetchAll(PDO::FETCH_ASSOC); if (count($row) == 0){ return false; } else { return $row; } } function getOneUserFull($cnx, $table_users, $account) { $row = $cnx->query("SELECT * FROM $table_users WHERE email = '$account'")->fetchAll(PDO::FETCH_ASSOC); if (count($row) == 0){ return false; } else { return $row; } } function getSubscribersEmail($cnx, $table_config, $email, $from, $from_name, $list_id = '') { $conf = new config(); $conf->getConfig($db_host, $db_login, $db_pass, $db_name, $table_config); $db = new Db(); $db->DbConnect($db_host, $db_login, $db_pass, $db_name); $sql = "SELECT DISTINCT email FROM $conf->table_email "; if (!empty($list_id)) $sql .= "WHERE list_id='$list_id'"; $cnx->SqlRow($sql); if ($db->DbError()) { echo $db->DbError(); return -1; } $body = "adresse email des abonnés:\n"; $body .= "-------------------------\n"; while ($a = $db->DbNextRow()) { $body .= $a[0] . "\n"; } return sendEmail($conf->sending_method, $email, $from, $from_name, "Liste des adresses", $body, $conf->smtp_auth, $conf->smtp_host = '', $conf->smtp_login = '', $conf->smtp_pass); } function getSubscribersNumbers($cnx,$table_email,$list_id,$type='') { switch($type){ case 'unsub': $row = $cnx->SqlRow("SELECT COUNT( email ) AS CPT FROM $table_email WHERE list_id ='$list_id' and type='unsub'"); break; case 'bounce': $row = $cnx->SqlRow("SELECT COUNT( email ) AS CPT FROM $table_email WHERE list_id ='$list_id' and type!='unsub'"); break; default: $row = $cnx->SqlRow("SELECT COUNT( email ) AS CPT FROM $table_email WHERE list_id ='$list_id'"); break; } return $row['CPT']; } function getSubscribersTotal($cnx,$table_email) { $row = $cnx->SqlRow("SELECT COUNT( distinct(email) ) AS CPT FROM $table_email"); return $row['CPT']; } function getWaitingMsg($hostname, $login, $pass, $database, $table_mod, $msg_id) { $sql = "SELECT date, type, email_from, subject, message, list_id FROM $table_mod WHERE id='$msg_id'"; $cnx->SqlRow($sql); if ($cnx->DbNumRows()) return $cnx->DbNextRow(); else return false; } function getWaitingMsgList($hostname, $login, $pass, $database, $table_mod, $list_id, $msg_id = '') { $sql = "SELECT id, date, email_from, subject FROM $table_mod WHERE list_id='$list_id'"; $cnx->SqlRow($sql); if ($cnx->DbNumRows()) { while ($r = $cnx->DbNextRow()) { $form .= "