| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- declare(strict_types=1);
- namespace App\Controller;
- use App\Tools\CommonService;
- use App\Tools\PublicData;
- use Hyperf\Di\Annotation\Inject;
- use Hyperf\HttpServer\Contract\RequestInterface;
- use Hyperf\Validation\Contract\ValidatorFactoryInterface;
- use App\Request\FooRequest;
- use App\Request\SceneRequest;
- use App\Tools\Result;
- use ZipArchive;
- class IndexController extends AbstractController
- {
- #[Inject]
- protected ValidatorFactoryInterface $validationFactory;
- public function index(RequestInterface $request)
- {
- $validator = $this->validationFactory->make(
- $request->all(),
- [
- 'foo' => 'required',
- 'bar' => 'required',
- ],
- [
- 'foo.required' => 'foo必填',
- 'bar.required' => 'bar必填',
- ]
- );
- if ($validator->fails()) {
- // Handle exception
- $errorMessage = $validator->errors()->first();
- var_dump($errorMessage);
- }
- // master123
- }
- public function verifyCode()
- {
- $comm = new CommonService();
- $ip = $comm->userIp();
- $redis = $this->container->get(\Hyperf\Redis\Redis::class);
- $config = new \EasySwoole\VerifyCode\Config();
- $code = new \EasySwoole\VerifyCode\VerifyCode($config);
- $img_code = '';
- $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
- $charLength = strlen($characters);
- for ($i = 0; $i < 4; $i++) {
- $img_code .= $characters[rand(0, $charLength - 1)];
- }
- //重写验证码
- $result = $code->DrawCode((string)$img_code);
- $img_code = $result->getImageCode();
- $code_uniqid = uniqid("code");
- //写入缓存 用于其他方法验证 并且设置过期时间
- $redis->set($code_uniqid, $img_code, 60000);
- //删除掉所有code_uniqid
- $redis->del($code_uniqid);
- $iterator = null;
- do {
- $keys = $redis->scan($iterator, "code*");
- var_dump($keys, '---1');
- if ($keys) {
- foreach ($keys as $key) {
- $redis->del($key);
- }
- }
- } while ($iterator > 0);
- return $result ? Result::success(['code' => $code_uniqid, 'img' => $result->getImageBase64()]) : Result::error('失败');
- // return $result->getImageBase64();
- }
- // test
- /**
- * 获取验证码
- */
- public function getverifyCode()
- {
- $comm = new CommonService();
- $ip = $comm->userIp();
- $redis = $this->container->get(\Hyperf\Redis\Redis::class);
- $img_code = $redis->get('code' . $ip);
- return Result::success($img_code);
- }
- }
|