private function sendForm($ini, $subject = null) { if (!substr_count($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) { return false; } $form = new Form(); if ($form->ParseSettings($ini)) { $this->formData = $form->BuildFormFields($_POST); if (empty($this->formData['error'])) { if (isset($_POST['emails'])) { if ($mSettings = $form->getmSettings()) { foreach ($mSettings as $key => $val) { if (1 == substr_count($key, 'mail')) { $form->delmSettings($key); } } } $form->setmSettings(array('emails' => $_POST['emails'])); } $subject = isset($subject) ? $subject : 'Request'; if (!empty($_POST['product']) && is_numeric($_POST['product'])) { $products = new Products(); $product = $products->getProductById($_POST['product']); $subject .= ' [' . $product['p_title'] . ']'; } elseif (!empty($_POST['product']) && is_string($_POST['product'])) { $subject .= ' [' . $_POST['product'] . ']'; $product = null; } $subject = isset($_POST['subject']) ? $_POST['subject'] : $subject; $msg = $subject . ' from ' . $_SERVER['HTTP_REFERER'] . "\n\n" . (isset($product) ? 'Product: ' . $product['p_title'] . "\n" : '') . $form->__toString(); if (isset($this->formData['AttachFile'])) { $filePath = $this->formData['AttachFile']['filepath']; $fileName = $this->formData['AttachFile']['filename']; } else { $filePath = ''; $fileName = ''; } if (!empty($_POST['subscribe']) && !empty($_POST['email']) && !empty($_POST['product'])) { $table_name = 'discount_subscribe'; $name = isset($_POST['name']) ? $_POST['name'] : ''; $q = sprintf("INSERT IGNORE INTO %s.%s (email, product_id, name, date) values('%s',%d, '%s', '%s')", VBox::get('ConstData')->getConst('langsDb'), $table_name, $_POST['email'], $_POST['product'], $name, date('Y-m-d')); DB::executeAlter($q, 'reg'); } if (!empty($_POST['notify']) && !empty($_POST['email']) && !empty($_POST['product'])) { $table_name = 'notify_users'; $q = 'SELECT * FROM ' . VBox::get('ConstData')->getConst('langsDb') . '.' . $table_name . ' WHERE nu_product_id = ? AND nu_email = ? LIMIT 1'; if (!DB::executeQuery($q, 'selectNotifyUser', array($_POST['product'], trim($_POST['email'])))) { $q = sprintf("INSERT IGNORE INTO %s.%s (nu_email, nu_product_id, nu_name, nu_date) values('%s',%d, '%s', '%s')", VBox::get('ConstData')->getConst('langsDb'), $table_name, trim($_POST['email']), $_POST['product'], $_POST['name'], date('Y-m-d h:i:s', time())); DB::executeAlter($q, 'reg'); } } if (isset($_POST['mail_body'])) { $mail_body = nl2br($_POST['mail_body']); $reply_to = isset($_POST['reply_to']) ? $_POST['reply_to'] : '*****@*****.**'; include_once ENGINE_PATH . 'class/classEmailReporter.php'; $reporter = new EmailReporter(); $reporter->setBody($mail_body); $reporter->send($this->formData['fields']['email'], array($reply_to => 'NetSpot'), $subject); } if (!empty($_POST['notify_template_stat']) && !empty($_POST['email']) && !empty($_POST['alias'])) { $table_name = 'email_stat'; /* add information at stat table */ $q = sprintf("INSERT INTO %s.%s (es_email, es_product_id, es_date) values('%s','%s','%s')", VBox::get('ConstData')->getConst('langsDb'), $table_name, $_POST['email'], $_POST['alias'], date('Y-m-d h:i:s', time())); DB::executeAlter($q, 'notify_template_stat'); if (!empty($_POST['template'])) { $last_id = DB::getLastInsertId(); if ($last_id) { include_once ENGINE_PATH . 'class/classEmailReporter.php'; $reporter = new EmailReporter(); $_subject = isset($_POST['templateSubject']) ? $_POST['templateSubject'] : 'Thank you for subscription'; $args = array(); $args['email'] = $_POST['email']; $args['hash'] = hash_hmac('md5', $last_id . $_POST['email'], 'stat'); $args['id'] = $last_id; $args['random'] = rand(0, 10000) . chr(rand(65, 90)); if (isset($_POST['args'])) { $args = $_POST['args']; } $mail_body = $reporter->renderingTpl($_POST['template']); $reporter->setBody($mail_body, $args); $reply_to = isset($_POST['reply_to']) ? $_POST['reply_to'] : '*****@*****.**'; $reporter->send($this->formData['fields']['email'], array($reply_to => 'NetSpot Software'), $_subject); } } } if (!empty($_POST['mailchimp_u']) && !empty($_POST['mailchimp_id'])) { $mailchimp_post_url = 'http://netspotapp.us12.list-manage.com/subscribe/post'; //netspotapp.us12.list-manage.com/subscribe/post?u=49afa3dbcd460871845fac4b8&id=df296d03d7 $attributes = array('u' => $_POST['mailchimp_u'], 'id' => $_POST['mailchimp_id'], 'MERGE0' => $_POST['email'], 'MERGE1' => isset($_POST['name']) ? $_POST['name'] : '', 'MERGE2' => ''); $errno = $error = false; if ($curl = curl_init()) { curl_setopt($curl, CURLOPT_URL, $mailchimp_post_url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($attributes)); $out = curl_exec($curl); $info = curl_getinfo($curl); $errno = curl_errno($curl); $tickets_hasError = curl_error($curl); curl_close($curl); // echo $out; // var_dump($info); // var_dump($errno); //var_dump($tickets_hasError); } } if (empty($_POST['not_send'])) { $fromEmail = empty($this->formData['fields']['email']) ? '*****@*****.**' : $this->formData['fields']['email']; $fromName = empty($this->formData['fields']['name']) ? $fromEmail : $this->formData['fields']['name']; $form->SendMail($subject, $msg, $fromName, $fromName . ' <' . $fromEmail . '>', $filePath, $fileName); } } } }