first commit

This commit is contained in:
Konstantin
2026-05-30 09:27:58 +03:00
commit de0344d218
2371 changed files with 661486 additions and 0 deletions
@@ -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();
}
}
@@ -0,0 +1,38 @@
<?php
class ControllerExtensionCaptchaGoogle extends Controller {
public function index($error = array()) {
$this->load->language('extension/captcha/google');
if (isset($error['captcha'])) {
$data['error_captcha'] = $error['captcha'];
} else {
$data['error_captcha'] = '';
}
$data['site_key'] = $this->config->get('captcha_google_key');
$data['route'] = $this->request->get['route'];
return $this->load->view('extension/captcha/google', $data);
}
public function validate() {
if (empty($this->session->data['gcapcha'])) {
$this->load->language('extension/captcha/google');
if (!isset($this->request->post['g-recaptcha-response'])) {
return $this->language->get('error_captcha');
}
$recaptcha = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($this->config->get('captcha_google_secret')) . '&response=' . $this->request->post['g-recaptcha-response'] . '&remoteip=' . $this->request->server['REMOTE_ADDR']);
$recaptcha = json_decode($recaptcha, true);
if ($recaptcha['success']) {
$this->session->data['gcapcha'] = true;
} else {
return $this->language->get('error_captcha');
}
}
}
}