Преглед на файлове

feat: better captcha null value handle

M1Screw преди 2 години
родител
ревизия
b8bb99731d
променени са 1 файла, в които са добавени 9 реда и са изтрити 7 реда
  1. 9 7
      src/Services/Captcha.php

+ 9 - 7
src/Services/Captcha.php

@@ -32,11 +32,12 @@ final class Captcha
 
         switch (Setting::obtain('captcha_provider')) {
             case 'turnstile':
-                if ($param['turnstile'] !== '') {
+                $turnstile = $param['turnstile'] ?? '';
+                if ($turnstile !== '') {
                     $postdata = http_build_query(
                         [
                             'secret' => Setting::obtain('turnstile_secret'),
-                            'response' => $param['turnstile'],
+                            'response' => $turnstile,
                         ]
                     );
                     $opts = ['http' => [
@@ -54,13 +55,14 @@ final class Captcha
                 }
                 break;
             case 'geetest':
-                if ($param['geetest'] !== '') {
+                $geetest = $param['geetest'] ?? [];
+                if ($geetest !== []) {
                     $captcha_id = Setting::obtain('geetest_id');
                     $captcha_key = Setting::obtain('geetest_key');
-                    $lot_number = $param['geetest']['lot_number'];
-                    $captcha_output = $param['geetest']['captcha_output'];
-                    $pass_token = $param['geetest']['pass_token'];
-                    $gen_time = $param['geetest']['gen_time'];
+                    $lot_number = $geetest['lot_number'];
+                    $captcha_output = $geetest['captcha_output'];
+                    $pass_token = $geetest['pass_token'];
+                    $gen_time = $geetest['gen_time'];
                     $sign_token = hash_hmac('sha256', $lot_number, $captcha_key);
                     $postdata = http_build_query(
                         [