PHP code example of tourze / captcha-challenge-bundle
1. Go to this page and download the library: Download tourze/captcha-challenge-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tourze / captcha-challenge-bundle example snippets
// In your controller
use Tourze\CaptchaChallengeBundle\Service\ChallengeService;
class YourController extends AbstractController
{
public function generateCaptcha(ChallengeService $challengeService): Response
{
// Generate captcha
$challengeKey = $challengeService->generateChallenge();
// Get captcha image URL
$imageUrl = $challengeService->generateChallengeCaptchaImageUrl($challengeKey);
return $this->json([
'challengeKey' => $challengeKey,
'imageUrl' => $imageUrl,
]);
}
}
// In your controller
use Tourze\CaptchaChallengeBundle\Service\ChallengeService;
class YourController extends AbstractController
{
public function verifyCode(
Request $request,
ChallengeService $challengeService
): Response
{
$challengeKey = $request->request->get('challengeKey');
$userInput = $request->request->get('captchaCode');
// Verify and consume captcha
$isValid = $challengeService->checkAndConsume($challengeKey, $userInput);
if (!$isValid) {
return $this->json(['success' => false, 'message' => 'Invalid captcha code']);
}
return $this->json(['success' => true]);
}
}
// Custom captcha generation with specific settings
$challengeKey = $challengeService->generateChallenge();
// Generate image with custom parameters
$imageUrl = $challengeService->generateChallengeCaptchaImageUrl($challengeKey);
// In your form type
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
$builder
->add('challengeKey', HiddenType::class)
->add('captchaCode', TextType::class, [
'label' => 'Enter captcha code',
'
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.