Ejemplo n.º 1
0
if (count($options)) {
    foreach ($options as $key => $option) {
        ${$option}['name'] = $option['value'];
    }
    if ($app->execCount("DELETE FROM captchas WHERE id = {$captcha_id} AND value = {$captcha_value}")) {
        if ($product_id and $name and $phone and $email) {
            $num = $app->fetch("SELECT COUNT(*) FROM `reviews` WHERE `mail` = '{$email}' AND `product_id` = {$product_id}")['COUNT(*)'];
            if ($num) {
                $return['error'] .= $error_count++ . '. На этот товар вы уже оставили отзыв!';
            } else {
                if (preg_match('#(.+)@(.+)\\.(.){2,6}#', $email) and strlen($email) < 100) {
                    $code = md5(crypt($email, 'mms_shop'));
                    $num = $app->execCount("INSERT INTO `reviews` (`name`, `phone`, `mail`, `review`, `product_id`, `product_name`," . " `rating`, `code`, `approved`, `create_tm`, `approve_tm`, `ip`) VALUES (" . $app->pdo->quote($name) . ", " . $app->pdo->quote($phone) . ", " . $app->pdo->quote($email) . ", " . $app->pdo->quote($product_review) . ", {$product_id}, " . $app->pdo->quote($product_name) . ", {$rating}, '{$code}', 0, " . time() . ", 0, '" . $_SERVER['REMOTE_ADDR'] . "' )");
                    if ($num) {
                        // Sends email to customer to approve subscription
                        $app->myMail($email, 'Отзыв в MinskElectro', "<html><body><h1>Здравствуйте, {$name}.</h1>" . "E-mail {$email} был указан при добавлении отзыва на сайте MinskElectro.com. Для подтверждения вам следует перейти по <a href='http://www.minskelectro.com/?confirm={$code}'>этой ссылке</a>." . "<p>С уважением,<br>MinskElectro.com</p>" . "</body></html>", 'MinskElectro', $order_mail);
                        $return['success'] .= $success_count++ . '. Сообщение для подтверждения отправлено.';
                    } else {
                        $return['error'] .= $error_count++ . '. Отзыв не добавлен из-за ошибки сервера.';
                    }
                } else {
                    $return['error'] .= $error_count++ . '. Неверно указан e-mail.';
                }
            }
        } else {
            $return['error'] .= $error_count++ . '. Не указаны имя и/или телефон и/или e-mail и/или product_id.';
        }
    } else {
        $app->myLog(LOG_INFO, "CAPTCHA check error: captcha_id = {$captcha_id}, captcha_value = {$captcha_value}");
        $return['error'] .= $error_count++ . '. Неправильно введены цифры с картинки!';
    }
$app = new App();
$error_count = 1;
$success_count = 1;
$return = array('success' => '', 'error' => '');
// AngularJS transmits data using Content-Type: application/json and JSON serialization,
// which unfortunately some Web server languages—notably PHP—do not unserialize natively.
// So server has empty $_POST array.
$feedback = json_decode(file_get_contents("php://input"));
$captcha_id = intval($feedback->captcha_id);
$captcha_value = intval($feedback->captcha_value);
$options = $app->fetchAll('SELECT * FROM `options`');
if (count($options)) {
    foreach ($options as $key => $option) {
        ${$option}['name'] = $option['value'];
    }
    if ($app->execCount("DELETE FROM captchas WHERE id = {$captcha_id} AND value = {$captcha_value}")) {
        try {
            $app->myMail($order_mail, $feedback->subject, $feedback->message);
        } catch (myException $e) {
            $return['error'] .= $error_count++ . '. ' . $e->getMessage();
        }
        if (!$return['error']) {
            $return['success'] .= $success_count++ . '. Ваше сообщение отправлено!';
        }
    } else {
        $return['error'] .= $error_count++ . '. Неправильно введены цифры с картинки!';
    }
} else {
    $return['error'] .= $error_count++ . '. Количество опций: 0.';
}
echo json_encode($return);
 }
 $code = isset($_GET['code']) ? htmlentities(strip_tags($_GET['code'])) : '';
 $command = isset($_GET['command']) ? htmlentities(strip_tags($_GET['command'])) : '';
 switch ($command) {
     case 'review':
         $num = $app->fetch("SELECT COUNT(*) FROM `reviews` WHERE `code` = " . $app->pdo->quote($code))['COUNT(*)'];
         if ($num) {
             $review = $app->fetch("SELECT * FROM `reviews` WHERE `code` = " . $app->pdo->quote($code));
             if ($review['approved'] == 1) {
                 $return['success'] .= $success_count++ . '. Ваш e-mail уже подтверждён. ';
             } else {
                 $num = $app->execCount("UPDATE `reviews` SET `approved` = 1, `approve_tm` = " . time() . " WHERE `code` = " . $app->pdo->quote($code));
                 if ($num) {
                     $return['success'] .= $success_count++ . '. Ваш отзыв подтверждён.';
                     // Sends email to customer about confirming subscription
                     if ($app->myMail($review['mail'], 'ME Notification', "<html><body>Отзыв подтверждён.<br><br>{$review['review']}</body></html>")) {
                         $return['success'] .= $success_count++ . '. Письмо об успешном подтверждении отзыва отправлено.';
                     }
                     // Sends email to admin about confirming subscription
                     if ($app->myMail($order_mail, 'ME Notification', "<html><body>E-mail {$review['mail']} подтверждён.<br><br>{$review['review']}</body></html>")) {
                         $return['success'] .= $success_count++ . '. Письмо об успешном подтверждении отзыва отправлено.';
                     }
                 } else {
                     $return['error'] .= $error_count++ . '. Не удалось обновить статус отзыва на сервере. ';
                 }
             }
         } else {
             $return['error'] .= $error_count++ . '. Такого e-mail нет в нашей рассылке. ';
         }
         break;
     case 'subscribe':
Ejemplo n.º 4
0
 $subscribe_decline = '';
 if ($app->execCount("DELETE FROM captchas WHERE id = {$captcha_id} AND value = {$captcha_value}")) {
     if (count($order->product)) {
         if ($name and $phone and $address) {
             if ($subscribe and $email) {
                 $num = $app->fetch("SELECT COUNT(*) FROM `subscribes` WHERE `mail` = '" . $email . "'")['COUNT(*)'];
                 if ($num) {
                     $code = $app->fetch("SELECT `code` FROM `subscribes` WHERE `mail`= '" . $email . "'")[0];
                     $subscribe_already = "подписаны ранее";
                 } else {
                     if (preg_match('#(.+)@(.+)\\.(.){2,6}#', $email) and strlen($email) < 100) {
                         $code = md5(crypt($email, 'mms_shop'));
                         $num = $app->execCount("INSERT INTO subscribes (`name`, `mail`, `code`, `approved`, `create_tm`, `approve_tm`, `ip`) VALUES (" . $app->pdo->quote($name) . ", " . $app->pdo->quote($email) . ", '" . $code . "', 0, " . time() . ", 0, '" . $_SERVER['REMOTE_ADDR'] . "' )");
                         $subscribe_now = "подписаны сейчас";
                         // Sends email to customer to approve subscription
                         $app->myMail($email, 'Подписка в MinskElectro', "<html><body><h1>Здравствуйте, {$name}.</h1>" . "E-mail {$email} был указан при подписке на новости сайта MinskElectro.com. Для подтверждения подписки вам следует перейти по <a href='http://www.minskelectro.com/?subscribe={$code}'>этой ссылке</a>." . "<p>С уважением,<br>MinskElectro.com</p>" . "</body></html>", 'MinskElectro', $order_mail);
                         $return['success'] .= $success_count++ . '. Subscription e-mail sent to the customer.';
                     } else {
                         $return['error'] .= $error_count++ . 'Email is invalid.';
                     }
                 }
             }
         } else {
             $subscribe_decline = 'отказались';
         }
         $i = 1;
         $products_price = 0;
         $order_price = 0;
         $product_table_for_client_email = "<table style='background:#ddd;text-align:right;width:1100px'><tr>" . "<th style='width:30px'>№</th><th style='width:70px'>ID</th><th style='text-align:left'>Название</th>" . "<th style='width:100px'>Гарантия,мес.</th><th style='width:100px'>Цена,{$s2}</th>" . "<th style='width:100px'>Кол-во</th><th style='width:100px'>Сумма, {$s2}</th></tr>";
         $product_table_for_admin_email = "<table style='background:#ddd;text-align:right;width:1200px'><tr>" . "<th style='width:30px'>№</th><th style='width:70px'>ID</th><th style='text-align:left'>Название</th>" . "<th style='width:100px'>Гарантия,мес.</th><th style='width:100px'>Пост.</th><th style='width:100px'>Опт цена, {$s2}</th>" . "<th style='width:100px'>Цена, {$s2}</th><th style='width:100px'>Кол-во</th><th style='width:100px'>Сумма, {$s2}</th></tr>";
         $product_table_for_admin_sms = '';