php-simple-captcha icon indicating copy to clipboard operation
php-simple-captcha copied to clipboard

Base64 encoding does not work

Open blablabla1234678 opened this issue 1 year ago • 3 comments

I am trying to use base64 encoded image, but it runs on this error:

Typed property SimpleCaptcha\Builder::$image must not be accessed before initialization

#0 /.../vendor/s1syphos/php-simple-captcha/src/Builder.php(1016): SimpleCaptcha\Builder->gd2img()
#1 /.../vendor/s1syphos/php-simple-captcha/src/Builder.php(1031): SimpleCaptcha\Builder->output()
#2 /.../vendor/s1syphos/php-simple-captcha/src/Builder.php(1046): SimpleCaptcha\Builder->fetch()
#3 /.../presentation/template/registration.php(23): SimpleCaptcha\Builder->inline()

All I do is instantiating the Builder class with the captcha string (only English characters and numbers) and calling the inline method:

        return $this->renderer->render($response, 'registration.php', [
            'csrf' => $this->csrf, 
            'captcha' => new CaptchaBuilder($this->security->getCaptcha()), 
            'values' => $values, 
            'errors' => $errors
        ]);
<img src="<?php $html->addAttribute($captcha->inline()); ?>" />

I guess the bug is in your code. https://stackoverflow.com/a/59265626/607033

blablabla1234678 avatar Dec 07 '23 14:12 blablabla1234678

Probably GD is not working on my server and the error message is not that helpful. At least in a different lib writes, that it got null instead of GD Image.

blablabla1234678 avatar Dec 07 '23 15:12 blablabla1234678

Nope, I checked, GD is enabled. The problem is with the code. Either the upper is not enough to render the captcha or there is a bug in the lib. I use PHP 8.2.

blablabla1234678 avatar Dec 07 '23 18:12 blablabla1234678

Sorry for not responding, as you may already have guessed, my time and resources right now are very limited. Thanks for bringing this to my attention! I'll look into it as soon as possible 😊

S1SYPHOS avatar Mar 14 '24 07:03 S1SYPHOS