Join our newsletter! db_host=$host; $this->db_login=$login; $this->db_pass=$pass; $this->db_name=$database; $this->db_config_table=$config_table; $db= new Db(); if( !$db->DbConnect($host, $login, $pass, $database)) return "ERROR_DBCONNECT_CORE"; $sql = "SELECT * FROM $config_table"; $db->DbQuery($sql); $config_row = $db->DbNextRow(); $this->admin_pass = $config_row[0]; $this->archive_limit = $config_row[1]; $this->base_url = $config_row[2]; $this->path = $config_row[3]; $this->sending_method = $config_row[4]; $this->language = $config_row[5]; $this->table_email = $config_row[6]; $this->table_temp = $config_row[7]; $this->table_listsconfig = $config_row[8]; $this->table_archives = $config_row[9]; $this->smtp_host = $config_row[10]; $this->smtp_auth = $config_row[11]; $this->smtp_login = $config_row[12]; $this->smtp_pass = $config_row[13]; $this->sending_limit = $config_row[14]; $this->validation_period = $config_row[15]; $this->sub_validation = $config_row[16]; $this->unsub_validation = $config_row[17]; $this->admin_email = $config_row[18]; $this->admin_name = $config_row[19]; //$this->mod_post = $config_row[20]; $this->mod_sub = $config_row[20]; // $this->table_post = $config_row[22]; $this->table_sub = $config_row[21]; $this->charset = $config_row[22]; return "SUCCESS"; } function saveConfig($host, $login, $pass, $database, $config_table, $admin_pass, $archive_limit, $base_url, $path, $language, $table_email, $table_temp, $table_listsconfig, $table_archives, $sending_method, $smtp_host, $smtp_auth, $smtp_login, $smtp_pass, $sending_limit, $validation_period, $sub_validation, $unsub_validation, $admin_email, $admin_name, $mod_sub, $table_sub, $charset) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); if(!get_magic_quotes_gpc()){ $admin_pass = escape_string($admin_pass); $base_url = escape_string($base_url); $path = escape_string($path); $smtp_host = escape_string($smtp_host); $smtp_login = escape_string($smtp_login); $smtp_pass = escape_string($smtp_pass); $sending_limit = escape_string($sending_limit); $validation_period = escape_string($validation_period); $sub_validation = escape_string($sub_validation); $unsub_validation = escape_string($unsub_validation); $admin_email = escape_string($admin_email); $admin_name = escape_string($admin_name); $mod_sub = escape_string($mod_sub); } $sql = "UPDATE $config_table SET "; if(!empty($admin_pass)){ $sql.= "admin_pass='".md5($admin_pass)."', "; setcookie("PMNLNG_admin_password",md5($admin_pass)); } $sql.= "archive_limit='$archive_limit', "; $sql.= "base_url='$base_url', "; $sql.= "path='$path',"; $sql.= "language='$language', "; $sql.= "table_email='$table_email', "; $sql.= "table_temp='$table_temp', "; $sql.= "table_listsconfig='$table_listsconfig', "; $sql.= "table_archives='$table_archives', "; $sql.= "sending_limit='$sending_limit' , "; $sql.= "sending_method='$sending_method', "; $sql.= "sub_validation='$sub_validation', "; $sql.= "unsub_validation='$unsub_validation', "; $sql.= "admin_email='$admin_email', "; $sql.= "admin_name='$admin_name' ,"; // $sql.= "mod_post='$mod_post' ,"; $sql.= "mod_sub='$mod_sub' , "; $sql.= "charset='$charset', "; $sql.= "mod_sub_table='$table_sub', "; $sql.= "validation_period='$validation_period' "; if($sending_method=='smtp'){ $sql.= ", smtp_host='$smtp_host', "; $sql.= "smtp_auth='$smtp_auth' "; if($smtp_auth==1){ $sql.= ", smtp_login='$smtp_login', "; $sql.= "smtp_pass='$smtp_pass'"; } else { $sql.= ", smtp_login='', "; $sql.= "smtp_pass=''"; } } else { $sql.= ", smtp_host='', "; $sql.= "smtp_auth='0' "; $sql.= ", smtp_login='', "; $sql.= "smtp_pass=''"; } $db->DbQuery($sql); if($db->DbError()) return 0; else return 1; } } } ?> ".ucfirst($value)."\n"; } return $ret; } function success_msg($msg) { pmnl_msg($msg,"success"); } function info_msg($msg) { pmnl_msg($msg,"info"); } function error_msg($msg) { pmnl_msg($msg,"error"); } function pmnl_msg($msg, $class, $align='center') { echo "
$msg
"; } function list_newsletter($host, $login, $pass, $database, $lists_table) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $db->DbQuery("SELECT list_id , newsletter_name FROM $lists_table ORDER BY list_id ASC"); $newsletter = array(); for($i=0;$i< $db->DbNumRows();$i++) $newsletter[$i] = $db->DbNextRow(); return $newsletter; } function get_newsletter_name($host, $login, $pass, $database, $lists_table, $list_id) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $db->DbQuery("SELECT newsletter_name FROM $lists_table WHERE list_id = '$list_id'"); if($db->DbNumRows()==0) return -1; $name = $db->DbNextRow(); return $name[0]; } function get_newsletter_total_subscribers($host, $login, $pass, $database, $email_table, $list_id){ $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $db->DbQuery("SELECT COUNT( email ) FROM $email_table WHERE list_id ='$list_id'"); $count = $db->DbNextRow(); return $count[0]; } function get_first_newsletter_id($host, $login, $pass, $database, $lists_table){ $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $db->DbQuery("SELECT list_id FROM $lists_table LIMIT 1"); if($db->DbNumRows()==0) return ''; $first_id = $db->DbNextRow(); return $first_id[0]; } function html_header($title='', $css='phpmynewsletter.css'){ header("Content-type: text/html; charset=utf-8"); echo << $title EOT; } function html_footer() { echo "
"; echo ""; } function page_header() { echo "


"; } function page_footer() { echo "
 

"; } function table_header() { echo "\n"; } function table_title($title) { echo "\t\n"; echo "\t\n"; } function table_footer() { echo "
$title

 
\n"; } function newsletter_list($list_id="", $popup=false, $display_archive=true){ global $hostname, $login ,$pass,$database, $table_global_config; global $lang_array; $conf = new config(); $r = $conf->getConfig($hostname,$login ,$pass,$database, $table_global_config); if ( $r != 'SUCCESS'){ include("include/lang/english.php"); echo translate($r); exit; } if( $conf->language != "" && file_exists("include/lang/".$conf->language.".php")){ include("include/lang/".$conf->language.".php"); } else { include("include/lang/english.php"); } $list = list_newsletter($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_listsconfig); if(sizeof($list)){ echo << function submitform() { if (document.sub_form.email_addr.value=='') EOT; echo"\n alert(\"".translate("EMAIL_ADDRESS_NOT_VALID")."\");\n"; echo <<
"; echo "
"; echo "
 
\n sub_validation) echo "_direct"; echo "\" checked=\"checked\" /> ".translate("NEWSLETTER_SUBSCRIPTION")."\n"; echo "\t\tunsub_validation) echo "_direct"; echo "\" /> ".translate("NEWSLETTER_UNSUBSCRIPTION"); if(sizeof($list) > 1 && empty($list_id)){ echo "
"; echo translate("AVAILABLE_NEWSLETTER"); echo "\n\n"; } else { $tid = (empty($list_id) ? $list[0]['list_id'] : $list_id); echo ""; } echo ""; echo "\t
\n"; if( $display_archive){ echo "
".translate("ARCHIVE_BROWSE")."
"; } echo "
"; } else echo error_msg(translate("NEWSLETTER_NOT_YET")); } ?> // phpMyNewsletter v0.8.x // a class for managing Newsletter if (!defined( "_NEWSLETTER_LIB" )) { define("_NEWSLETTER_LIB", 1); function validEmailAddress($email){ // regx to test for valid e-mail adres $regex = '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]{2,})+$'; if (eregi($regex, $email)) return true; else return false; } class Newsletter { var $list_id; var $name; //name of the newsletter var $from; var $from_name; var $subscription_subject; var $subscription_body; var $welcome_subject; var $welcome_body; var $quit_subject; var $quit_body; var $subject; var $header; var $footer; var $db_host; var $db_login; var $db_pass; var $db_name; function getConfig($host, $login, $pass, $database, $list_id , $list_table){ $this->list_id = $list_id; $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $db->DbQuery("SELECT * FROM $list_table WHERE list_id='$list_id'"); $conf = $db->DbNextRow(); $this->db_host =$host; $this->db_login=$login; $this->db_pass =$pass; $this->db_name =$database; $this->name= $conf[1]; $this->from= $conf[2]; $this->from_name = $conf[3]; $this->subject= $conf[4]; $this->header = $conf[5]; $this->footer = $conf[6]; $this->subscription_subject = $conf[7]; $this->subscription_body = $conf[8]; $this->welcome_subject = $conf[9]; $this->welcome_body = $conf[10]; $this->quit_subject = $conf[11]; $this->quit_body = $conf[12]; } function getAddress($mail_table, $begin='', $limit='') { $Addr = array(); $db= new Db(); $db->DbConnect($this->db_host, $this->db_login, $this->db_pass, $this->db_name); $sql = "SELECT email FROM $mail_table WHERE list_id='$this->list_id'"; $db->DbQuery($sql ,$begin, $limit, 1); for($i=0; $i<$db->DbNumRows(); $i++){ $addr = $db->DbNextRow(); $Addr[$i]=$addr[0]; } return $Addr; } function saveConfig($db_host, $db_login, $db_pass, $db_name, $list_id, $table_listsconfig, $newsletter_name, $from, $from_name, $subject, $header, $footer, $subscription_subject, $subscription_body, $welcome_subject, $welcome_body, $quit_subject, $quit_body){ $db= new Db(); $db->DbConnect($db_host, $db_login, $db_pass, $db_name); if(!get_magic_quotes_gpc()){ $newsletter_name = escape_string($newsletter_name); $from = escape_string($from); $from_name = escape_string($from_name); $subject = escape_string($subject); $header = escape_string($header); $footer = escape_string($footer); $subscription_subject = escape_string($subscription_subject); $subscription_body = escape_string($subscription_body); $welcome_subject = escape_string($welcome_subject); $welcome_body = escape_string($welcome_body); $quit_subject = escape_string($quit_subject); $quit_body =escape_string($quit_body); } $sql ="UPDATE $table_listsconfig SET newsletter_name=\"$newsletter_name\", from_addr=\"$from\", from_name=\"$from_name\", subject=\"$subject\", header=\"$header\" , footer=\"$footer\" , subscription_subject=\"$subscription_subject\", subscription_body=\"$subscription_body\", welcome_subject=\"$welcome_subject\", welcome_body=\"$welcome_body\", quit_subject=\"$quit_subject\", quit_body=\"$quit_body\" WHERE list_id='$list_id'"; $db->DbQuery($sql); if($db->DbError()) return 0; else return 1; } function getSubscribersNumbers($table_email){ $db= new Db(); $db->DbConnect($this->db_host, $this->db_login, $this->db_pass, $this->db_name); $db->DbQuery("SELECT COUNT(*) FROM $table_email WHERE list_id='$this->list_id'"); $num = $db->DbNextRow(); return $num[0]; } function deleteArchive($table_archives, $msg_id){ $db= new Db(); $db->DbConnect($this->db_host, $this->db_login, $this->db_pass, $this->db_name); $db->DbQuery("DELETE FROM $table_archives WHERE id='$msg_id'"); if($db->DbError()) return 0; else return 1; } function getArchivesSelectList($table_archives, $msg_id='', $form_name='archive_form2'){ $db= new Db(); $db->DbConnect($this->db_host, $this->db_login, $this->db_pass, $this->db_name); $sql = "SELECT id, date, subject FROM $table_archives WHERE list_id='$this->list_id' ORDER BY date DESC"; $db->DbQuery($sql); if($db->DbNumRows() == 0) return -1; else { echo ""; } } function getArchiveMsg($table_archives, $msg_id) { if( empty($offset)) $offset=0; $db= new Db(); $db->DbConnect($this->db_host, $this->db_login, $this->db_pass, $this->db_name); $sql = "SELECT date, type, subject, message FROM $table_archives WHERE id='$msg_id'"; $db->DbQuery($sql); if($db->DbNumRows() == 0) return -1; else{ $archive = $db->DbNextRow(); echo "
"; $subject = htmlspecialchars($archive[2]); $subject = stripslashes($subject); $date = $archive[0]; echo "
".$subject." - ".$date."
"; //echo translate("ARCHIVE_SUBJECT").": ".$subject."
\n"; //echo translate("ARCHIVE_DATE").": ".$archive[0]."
\n"; //echo translate("ARCHIVE_FORMAT").": ".$archive[1]."

\n"; echo "
"; if($archive[1] != "html"){ $body = str_replace("<","<", $archive[3]); $body = str_replace(">",">", $body); $body = nl2br(stripslashes($body)); } else { $body = stripslashes( $archive[3] ); } echo "\t".$body; echo "
\n"; echo "
"; } } } } ?> DbConnect($host, $login, $pass, $database); $sql= "DELETE FROM $temp_table where date < '$before'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError() .">".$sql; return 0; } return 1; } /** Check if admin password is correct **/ function checkAdminAccess($conf_pass, $admin_pass) { if(!empty($_COOKIE['PMNLNG_admin_password']) && ($_COOKIE['PMNLNG_admin_password'] == $conf_pass)){ return 1; }else { if($conf_pass == md5($admin_pass)){ setcookie("PMNLNG_admin_password",md5($admin_pass)); return 1; } else { return 0; } } } function leaveAdmin() { if(setcookie("PMNLNG_admin_password")) return 1; return 0; } function saveConfigFile($db_host, $db_login, $db_pass, $db_name, $db_config_table, $db_type='mysql') { $configfile =""; if(is_writable("../include/config.php")){ $fc = fopen("../include/config.php", "w"); $w = fwrite ($fc, $configfile ); return 1; } else { return -1; } } function sendEmail($send_method,$to, $from, $from_name, $subject, $body, $auth=0, $smtp_host='', $smtp_login='',$smtp_pass='' , $charset='UTF-8') { $mail = new phpmailer(); $mail->CharSet= $charset;; $mail->PluginDir= "include/lib/"; switch($send_method){ case "smtp": $mail->IsSMTP(); $mail->Host = $smtp_host; if($auth){ $mail->SMTPAuth = true; $mail->Username = $smtp_login; $mail->Password = $smtp_pass; } break; case "php_mail": $mail->IsMail(); break; case "online_mail": $mail->IsOnlineEMail(); break; default: break; } $mail->From = $from; $mail->FromName = $from_name; //get address $mail->AddAddress($to); // $mail->WordWrap = 50; $mail->Subject = $subject; $mail->Body = $body; if(!$mail->Send()) { echo $mail->ErrorInfo; return -2; } return 1; } function isValidSubscriber($host,$login ,$pass,$database,$table_email, $list_id, $email_addr) { $email_addr=strtolower($email_addr); $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "SELECT hash FROM $table_email WHERE list_id='$list_id' AND email='$email_addr'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -1; } $sub = $db->DbNumRows(); if($sub==0) return 0; $h = $db->DBNextRow(); return $h[0]; } function isValidNewsletter($host,$login ,$pass,$database,$table_list, $list_id) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "SELECT list_id FROM $table_list WHERE list_id='$list_id'"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); return 0; } return $db->DbNumRows(); } function addSubscriberTemp($host,$login ,$pass,$database,$table_email,$table_temp, $list_id, $addr) { $addr=strtolower($addr); $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -1; } $mail = $db->DbNumRows(); $sql = "SELECT email FROM $table_temp WHERE list_id='$list_id' AND email='$addr'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -1; } $mail+= $db->DbNumRows(); if($mail) return 0; $hash = unique_id(); $date=date("Ymd"); $sql = "INSERT INTO $table_temp (`email`, `list_id` , `hash` , `date`) VALUES ('$addr', '$list_id','$hash' , '$date')"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -1; } return $hash; } function addSubscriber($host,$login ,$pass,$database,$table_email,$table_temp, $list_id, $addr, $hash) { $addr=strtolower($addr); $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "SELECT email FROM $table_temp WHERE list_id='$list_id' AND email='$addr' AND hash='$hash'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -1; } $add = $db->DbNumRows(); if($add==0) return -1; $sql = "INSERT INTO $table_email (`email`, `list_id` , `hash`) VALUES ('$addr', '$list_id','$hash')"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -2; } $sql = "DELETE FROM $table_temp WHERE email='$addr' AND list_id='$list_id' AND hash='$hash'"; // echo $sql; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -3; } return 1; } function addSubscriberDirect($host,$login ,$pass,$database,$table_email,$list_id, $addr) { $addr=strtolower($addr); $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -1; } $add = $db->DbNumRows(); if($add) return -1; $hash = unique_id(); $sql = "INSERT INTO $table_email (`email`, `list_id` , `hash`) VALUES ('$addr', '$list_id','$hash')"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -2; } return $hash; } function removeSubscriber($host,$login ,$pass,$database,$table_email, $list_id, $addr, $hash) { $addr=strtolower($addr); $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr' AND hash='$hash'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -1; } $rm= $db->DbNumRows(); if($rm==0) return -1; $sql = "DELETE FROM $table_email WHERE email='$addr' AND list_id='$list_id' AND hash='$hash'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -2; } return 1; } function removeSubscriberDirect($host,$login ,$pass,$database,$table_email, $list_id, $addr) { $addr=strtolower($addr); $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -1; } $rm= $db->DbNumRows(); if($rm==0) return -1; $sql = "DELETE FROM $table_email WHERE email='$addr' AND list_id='$list_id'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -2; } return 1; } function deleteNewsletter($host,$login ,$pass,$database,$table_list,$table_archives, $table_email,$table_temp, $list_id) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "DELETE FROM $table_list WHERE list_id='$list_id'"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); return 0; } $sql = "DELETE FROM $table_email WHERE list_id='$list_id'"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); return 0; } $sql = "DELETE FROM $table_temp WHERE list_id='$list_id'"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); return 0; } $sql = "DELETE FROM $table_archives WHERE list_id='$list_id'"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); return 0; } return 1; } function createNewsletter($db_host, $db_login, $db_pass, $db_name, $table_listsconfig, $newsletter_name, $from, $from_name, $subject, $header, $footer, $subscription_subject, $subscription_body,$welcome_subject, $welcome_body, $quit_subject, $quit_body) { $db= new Db(); $db->DbConnect($db_host, $db_login, $db_pass, $db_name); $sql="SELECT list_id FROM $table_listsconfig ORDER BY list_id DESC"; $db->DbQuery($sql); $id = $db->DbNextRow(); $newid = $id[0]+1; if(!get_magic_quotes_gpc()){ $newsletter_name = escape_string($newsletter_name); $from = escape_string($from); $from_name = escape_string($from_name); $subject = escape_string($subject); $header = escape_string($header); $footer = escape_string($footer); $subscription_subject = escape_string($subscription_subject); $subscription_body = escape_string($subscription_body); $welcome_subject = escape_string($welcome_subject); $welcome_body = escape_string($welcome_body); $quit_subject = escape_string($quit_subject); $quit_body = escape_string($quit_body); } $sql ="INSERT INTO $table_listsconfig "; $sql.="(`list_id` , `newsletter_name` , `from_addr` , `from_name` , `subject` , `header` , `footer` , `subscription_subject` , `subscription_body`, `welcome_subject` , `welcome_body` , `quit_subject` ,`quit_body`) VALUES "; $sql.="('$newid','$newsletter_name', '$from', '$from_name', '$subject', '$header', '$footer', '$subscription_subject', '$subscription_body', '$welcome_subject','$welcome_body', '$quit_subject', '$quit_body')"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); return 0; } else return $newid; } function save_message($host,$login ,$pass,$database, $table_archive,$subject,$format, $body, $date,$list_id) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql="SELECT id FROM $table_archive ORDER BY id DESC"; $db->DbQuery($sql); $id = $db->DbNextRow(); $newid = $id[0]+1; $sql="INSERT into $table_archive (`id`, `date`,`type`, `subject` , `message`, `list_id`) VALUES ('$newid', '$date','$format','$subject','$body', '$list_id')"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); return -1; } return $newid; } function get_message($host,$login ,$pass,$database, $table_archive,$msg_id) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql="SELECT type, subject, message FROM $table_archive WHERE id='$msg_id'"; $db->DbQuery($sql); $message = $db->DbNextRow(); return $message; } function unique_id() { mt_srand((double)microtime()*1000000); return md5( mt_rand(0,9999999) ); } function get_subscribers($host,$login ,$pass,$database, $table_email, $list_id) { $i=0; $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $db->DbQuery("SELECT email from $table_email WHERE list_id = '$list_id' ORDER BY email"); $subscribers = array(); $toAdd = $db->DbNextRow(); while( $toAdd['email'] ){ $subscribers[$i] = $toAdd['email']; $toAdd = $db->DbNextRow(); $i++; } asort($subscribers); return $subscribers; } function delete_subscriber($host,$login ,$pass,$database, $table_email, $list_id, $del_addr) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "DELETE from $table_email WHERE list_id = '$list_id' AND email='$del_addr'"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); echo $sql; return 0; } else return 1; } function add_subscriber($host,$login ,$pass,$database, $table_email, $list_id, $add_addr) { $add_addr=strtolower($add_addr); $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "SELECT hash FROM $table_email WHERE list_id='$list_id' AND email='$add_addr'"; $db->DbQuery($sql); if($db->DbError()){ echo $db->DbError(); return -2; } $add = $db->DbNumRows(); if($add!=0) return -1; $hash = unique_id(); $db->DbQuery("INSERT INTO $table_email (`email`, `list_id`, `hash`) VALUES ('$add_addr', '$list_id', '$hash')"); if($db->DbError()) return 0; else return 1; } function moderate_subscriber($host,$login ,$pass,$database, $table_email, $table_sub, $list_id, $mod_addr) { $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $db->DbQuery("DELETE from $table_moderation WHERE list_id = '$list_id' AND email='$mod_addr'"); if($db->DbError()) { echo $db->DbError(); return 0; } $hash = unique_id(); $sql = "INSERT INTO $table_email (`email`, `list_id`, `hash`) VALUES ('$mod_addr', '$list_id','$hash')"; $db->DbQuery($sql); if($db->DbError()) { echo $db->DbError(); return 0; } else return $hash; } function upgrade($host,$login ,$pass,$database, $table_global_config){ $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $db->DbQuery("SHOW COLUMNS FROM $table_global_config"); $found = 0; while($i = $db->DbNextRow()){ if ($i['Field'] == "charset"){ $found = 1; break; } } //let's go for upgrade if($found != 1){ $sql = "ALTER TABLE $table_global_config ADD charset varchar(255) NOT NULL default 'utf-8'"; $db->DbQuery($sql); } } /* As of 0.8beta5 admin password is stored hashed in the DB, so we need to update it ! */ function upgrade_password($host,$login ,$pass,$database, $table_global_config, $admin_pass){ $db= new Db(); $db->DbConnect($host, $login, $pass, $database); $sql = "UPDATE $table_global_config SET admin_pass='".md5($admin_pass)."' WHERE admin_pass = '".$admin_pass."'"; $db->DbQuery($sql); return $db->DbAffectedRows(); } ?>