· 5 years ago · Mar 28, 2020, 11:04 AM
1<?php
2class Captcha
3{
4 private $key;
5 private $secretkey;
6 private $userip;
7
8 public function set($call, $data)
9 {
10 switch($call)
11 {
12 case 'key':
13 return $this->key = $data;
14 break;
15 case 'secretkey':
16 return $this->secretkey = $data;
17 break;
18 case 'userip':
19 return $this->userip = $data;
20 break;
21 }
22 }
23
24 public function get($call)
25 {
26 switch($call)
27 {
28 case 'key':
29 return $this->key;
30 break;
31 case 'secretkey':
32 return $this->secretkey;
33 break;
34 case 'userip':
35 return $this->userip;
36 break;
37 }
38 }
39
40 public function __construct($data = [])
41 {
42 if (isset($data['key'])) $this->set('key', $data['key']);
43 if (isset($data['secretkey'])) $this->set('key', $data['secretkey']);
44 if (isset($data['secretkey'])) $this->set('key', $data['secretkey']);
45 }
46
47 private function getUserIp() : string
48 {
49 return $_SERVER['HTTP_CF_CONNECTING_IP'] ?? $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['HTTP_X_CLIENT_IP'] ?? $_SERVER['REMOTE_ADDR'] ?? null;
50 }
51
52 private function post(string $url, array $data)
53 {
54 $curl = curl_init();
55 curl_setopt_array($curl, array(
56 CURLOPT_URL => $url,
57 CURLOPT_RETURNTRANSFER => true,
58 CURLOPT_POST => true,
59 CURLOPT_FAILONERROR => false,
60 CURLOPT_FOLLOWLOCATION => true,
61 CURLOPT_POSTFIELDS => http_build_query($data)
62 ));
63
64 $response = json_encode(curl_exec($curl));
65 curl_close($curl);
66
67 return $response;
68 }
69
70 private function verify(string $str)
71 {
72
73 }
74}
75?>