aboutsummaryrefslogtreecommitdiffstats
path: root/public/catalog/controller/extension/captcha/basic.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/catalog/controller/extension/captcha/basic.php')
-rw-r--r--public/catalog/controller/extension/captcha/basic.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/public/catalog/controller/extension/captcha/basic.php b/public/catalog/controller/extension/captcha/basic.php
new file mode 100644
index 0000000..f0f3325
--- /dev/null
+++ b/public/catalog/controller/extension/captcha/basic.php
@@ -0,0 +1,57 @@
+<?php
+class ControllerExtensionCaptchaBasic extends Controller {
+ public function index($error = array()) {
+ $this->load->language('extension/captcha/basic');
+
+ if (isset($error['captcha'])) {
+ $data['error_captcha'] = $error['captcha'];
+ } else {
+ $data['error_captcha'] = '';
+ }
+
+ $data['route'] = $this->request->get['route'];
+
+ return $this->load->view('extension/captcha/basic', $data);
+ }
+
+ public function validate() {
+ $this->load->language('extension/captcha/basic');
+
+ if (empty($this->session->data['captcha']) || ($this->session->data['captcha'] != $this->request->post['captcha'])) {
+ return $this->language->get('error_captcha');
+ }
+ }
+
+ public function captcha() {
+ $this->session->data['captcha'] = substr(sha1(mt_rand()), 17, 6);
+
+ $image = imagecreatetruecolor(150, 35);
+
+ $width = imagesx($image);
+ $height = imagesy($image);
+
+ $black = imagecolorallocate($image, 0, 0, 0);
+ $white = imagecolorallocate($image, 255, 255, 255);
+ $red = imagecolorallocatealpha($image, 255, 0, 0, 75);
+ $green = imagecolorallocatealpha($image, 0, 255, 0, 75);
+ $blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
+
+ imagefilledrectangle($image, 0, 0, $width, $height, $white);
+ imagefilledellipse($image, ceil(rand(5, 145)), ceil(rand(0, 35)), 30, 30, $red);
+ imagefilledellipse($image, ceil(rand(5, 145)), ceil(rand(0, 35)), 30, 30, $green);
+ imagefilledellipse($image, ceil(rand(5, 145)), ceil(rand(0, 35)), 30, 30, $blue);
+ imagefilledrectangle($image, 0, 0, $width, 0, $black);
+ imagefilledrectangle($image, $width - 1, 0, $width - 1, $height - 1, $black);
+ imagefilledrectangle($image, 0, 0, 0, $height - 1, $black);
+ imagefilledrectangle($image, 0, $height - 1, $width, $height - 1, $black);
+
+ imagestring($image, 10, intval(($width - (strlen($this->session->data['captcha']) * 9)) / 2), intval(($height - 15) / 2), $this->session->data['captcha'], $black);
+
+ header('Content-type: image/jpeg');
+
+ imagejpeg($image);
+
+ imagedestroy($image);
+ exit();
+ }
+}