コード例 #1
0
    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++ . '. Неправильно введены цифры с картинки!';
    }
} else {
    $return['error'] .= $error_count++ . '. Количество опций: 0.';
}
echo json_encode($return);
コード例 #2
0
$charset = '0123456789';
// list possible characters to include on the CAPTCHA
$code_length = 4;
// how many characters include in the CAPTCHA
$height = 16;
// antispam image height
$width = 50;
// antispam image width
$code = '';
for ($i = 0; $i < $code_length; $i++) {
    $code = $code . substr($charset, mt_rand(0, strlen($charset) - 1), 1);
}
$ins = $app->execCount("INSERT INTO captchas (id, value, create_tm, ip, useragent_md5) VALUES ({$_GET['id']}, {$code}, " . ($t = time()) . ", '" . $_SERVER['REMOTE_ADDR'] . "', '" . md5($_SERVER['HTTP_USER_AGENT']) . "')");
$del = $app->execCount("DELETE FROM captchas WHERE abs( {$t} - create_tm ) > 10 * 60");
if ($ins) {
    $app->myLog(LOG_INFO, "CAPTCHA set: captcha_id = {$_GET['id']}, captcha_value = {$code}");
} else {
    $app->myLog(LOG_INFO, "CAPTCHA set error: inserted {$ins}, deleted {$del}");
}
$font_size = $height * 0.7;
$image = imagecreate($width, $height);
$background_color = imagecolorallocate($image, 255, 255, 255);
$noise_color = imagecolorallocate($image, 200, 200, 200);
// add image noise
for ($i = 0; $i < $width * $height / 4; $i++) {
    imageellipse($image, mt_rand(0, $width), mt_rand(0, $height), 1, 1, $noise_color);
}
// render text
$text_color = imagecolorallocate($image, 20, 40, 100);
imagettftext($image, $font_size, -2, 7, 15, $text_color, $font, $code) or die('Cannot render TTF text.');
// output image to the browser