ponepaste/includes/captcha.php

32 lines
730 B
PHP
Raw Normal View History

2021-07-10 19:18:17 +01:00
<?php
function setupCaptcha($token = null) : string {
global $redis;
2022-08-27 02:48:10 -04:00
$allowed = "ABCDEFGHIJKLMNOPQRSTUVYXYZabcdefghijklmnopqrstuvwxyz0123456789";
$code = '';
for ($i = 0; $i < 5; $i++) {
2022-08-27 02:48:10 -04:00
$code .= substr($allowed, rand() % (strlen($allowed)), 1);
}
if ($token === null) {
$token = pp_random_password();
}
$redis->setex('captcha/' . md5($token), 600, $code);
return $token;
}
function checkCaptcha(string $token, string $answer) : bool {
global $redis;
2022-08-27 02:48:10 -04:00
$redis_answer = $redis->get('captcha/' . md5($token));
if (!$redis_answer) {
return false;
}
$redis->del('captcha/' . $token);
2022-08-27 02:48:10 -04:00
return strtolower($redis_answer) === strtolower($answer);
}