getConfig($hostname,$login ,$pass,$database, $table_global_config); include("include/lang/".$conf->language.".php"); $list_id = (!empty($_POST['list_id']) ? $_POST['list_id'] : ""); $list_id = (empty($list_id) && !empty($_GET['list_id']) ? $_GET['list_id'] : $list_id); $email_addr = (!empty($_POST['email_addr']) ? $_POST['email_addr'] : ""); $email_addr = (empty($email_addr) && !empty( $_GET['email_addr']) ? $_GET['email_addr'] : $email_addr); $op = (!empty($_POST['op']) ? $_POST['op'] : ""); $op = (empty($op) && !empty( $_GET['op']) ? $_GET['op'] : $op); $hash = (!empty($_POST['hash']) ? $_POST['hash'] : ""); $hash = (empty($hash) && !empty( $_GET['hash']) ? $_GET['hash'] : $hash); if($op == "leave" && !$conf->unsub_validation){ $op = "leave_direct"; } else if($op == "leave_direct" && $conf->unsub_validation){ $op = "leave"; } else if($op == "join" && !$conf->sub_validation){ $op = "join_direct"; } else if($op == "join_direct" && $conf->sub_validation){ $op = "join"; } if(isset($list_id) && !empty($list_id) && isValidNewsletter($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_listsconfig, $list_id) && isset($email_addr)){ switch($op) { case "join": html_header(translate("NEWSLETTER_TITLE")); echo "
"; echo "
".translate("SUBSCRIPTION_TITLE")."
"; echo "
"; if(!$conf->mod_sub){ $add = addSubscriberTemp( $conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $conf->table_temp , $list_id, $email_addr); $news = new Newsletter(); $news->getConfig($hostname,$login ,$pass,$database, $list_id,$conf->table_listsconfig); if(strlen($add) > 3){ $body = $news->subscription_body; $body.= "\n\n".translate("SUBSCRIPTION_MAIL_BODY").":\n"; $body.= $conf->base_url.$conf->path."subscription.php?op=confirm_join&email_addr=$email_addr&hash=$add&list_id=$list_id"; $mail=sendEmail($conf->sending_method,$email_addr,$news->from, $news->from_name,$news->subscription_subject,$body, $conf->smtp_auth, $conf->smtp_host, $conf->smtp_login, $conf->smtp_pass); echo "
".translate("SUBSCRIPTION_SEND_CONFIRM_MESSAGE")."
"; } else if($add==0) echo "
".translate("SUBSCRIPTION_ALREADY_SUBSCRIBER")."
"; else echo "
".translate("ERROR_SQL2", MYSQL_ERROR())."
"; echo "
".translate("BACK")."
"; } else { $add = addSubscriberMod($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $conf->table_sub , $list_id, $email_addr); if($add) echo "
".translate("Subscription requested recorded, waiting for moderation")."
"; else if($add==0) echo "
".translate("You are already a subscriber")."
"; else echo "
".translate("Error while SQL query")."
"; echo "
".translate("Back")."
"; } echo "
"; html_footer(); break; case "leave": html_header(translate("NEWSLETTER_TITLE")); $news = new Newsletter(); $news->getConfig($hostname,$login ,$pass,$database, $list_id,$conf->table_listsconfig); $hash = isValidSubscriber($conf->db_host,$conf->db_login ,$conf->db_pass,$conf->db_name, $conf->table_email, $list_id, $email_addr); echo "
"; echo "
".translate("UNSUBSCRIPTION_TITLE")."
"; echo "
"; if($hash){ $body = $news->quit_body; $body.= "\n\n".translate("UNSUBSCRIPTION_MAIL_BODY")." :\n"; $body.= $conf->base_url.$conf->path."subscription.php?op=confirm_leave&email_addr=$email_addr&hash=$hash&list_id=$list_id"; if(sendEmail($conf->sending_method,$email_addr,$news->from, $news->from_name,$news->quit_subject,$body, $conf->smtp_auth, $conf->smtp_host, $conf->smtp_login, $conf->smtp_pass)) echo "
".translate("SUBSCRIPTION_SEND_CONFIRM_MESSAGE")."
"; else echo "
".translate("ERROR_SENDING_CONFIRM_MAIL")."
"; } else echo "
".translate("You are not a subscriber of this newsletter")."
"; echo "
".translate("BACK")."
"; echo "
"; echo ""; table_footer(); page_footer(); html_footer(); break; case "confirm_join": html_header(translate("NEWSLETTER_TITLE")); $add= addSubscriber( $conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $conf->table_temp , $list_id, $email_addr,$hash); echo "
"; echo "
".translate("SUBSCRIPTION_CONFIRMATION")."
"; echo "
"; if($add){ $news = new Newsletter(); $news->getConfig($hostname,$login ,$pass,$database, $list_id,$conf->table_listsconfig); $body = $news->welcome_body; $body.= "\n\n".translate("SUBSCRIPTION_UNSUBSCRIBE_LINK").":\n"; $body.= $conf->base_url.$conf->path."subscription.php?op=confirm_leave&email_addr=$email_addr&hash=$hash&list_id=$list_id"; $mail=sendEmail($conf->sending_method,$email_addr,$news->from, $news->from_name,$news->welcome_subject,$body, $conf->smtp_auth, $conf->smtp_host, $conf->smtp_login, $conf->smtp_pass); echo "
".translate("SUBSCRIPTION_FINISHED")."
"; } else if($add==-1) echo "
".translate("SUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS")."!
"; else echo "
".translate("ERROR_UNKNOWN")."
"; echo "
"; html_footer(); break; case "confirm_leave": html_header(translate("NEWSLETTER_TITLE")); $rm=removeSubscriber($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $list_id, $email_addr,$hash); echo "
"; echo "
".translate("UNSUBSCRIPTION_CONFIRMATION")."
"; echo "
"; if($rm==1) echo "
".translate("UNSUBSCRIPTION_FINISHED").".
"; else if($rm==-1) echo "
".translate("UNSUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS")."
"; else echo "
".translate("ERROR_UNKNOWN")."
"; echo "
"; html_footer(); break; case "join_direct": if(!$conf->sub_validation){ html_header(translate("NEWSLETTER_TITLE")); echo "
"; echo "
".translate("SUBSCRIPTION_TITLE")."
"; echo "
"; $add = addSubscriberDirect($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $list_id, $email_addr); /* $add not -1 nor -2 TODO:need to be rewritten */ if(strlen($add) > 2){ $news = new Newsletter(); $news->getConfig($hostname,$login ,$pass,$database, $list_id,$conf->table_listsconfig); $body = $news->welcome_body; $body.= "\n\n".translate("UNSUBSCRIPTION_MAIL_BODY").":\n"; $body.= $conf->base_url.$conf->path."subscription.php?op=confirm_leave&email_addr=$email_addr&hash=$add&list_id=$list_id"; $mail=sendEmail($conf->sending_method,$email_addr,$news->from, $news->from_name,$news->welcome_subject,$body, $conf->smtp_auth, $conf->smtp_host, $conf->smtp_login, $conf->smtp_pass); echo "
".translate("SUBSCRIPTION_FINISHED")."
"; } else if($add==-1){ echo "
".translate("SUBSCRIPTION_ALREADY_SUBSCRIBER")."
"; } else { echo "
".translate("ERROR_UNKNOWN")."
"; } echo "
".translate("BACK")."
"; echo "
"; html_footer(); } else header("Location:index.php"); break; case "leave_direct": if(!$conf->unsub_validation){ html_header(translate("NEWSLETTER_TITLE")); $rm=removeSubscriberDirect($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $list_id, $email_addr); echo "
"; echo "
".translate("UNSUBSCRIPTION_TITLE")."
"; echo "
"; if($rm==1) echo "
".translate("UNSUBSCRIPTION_FINISHED").".
"; else if($rm==-1) echo "
".translate("UNSUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS")."
"; else echo "
".translate("ERROR_UNKNOWN")."
"; echo "
".translate("BACK")."
"; html_footer(); } else header("Location:index.php"); break; default: header("Location:index.php"); break; } } else header("Location:index.php"); ?>