yii-captcha
yii-captcha copied to clipboard
Error: Call to a member function generateVerifyCode() on null
trafficstars
| Q | A |
|---|---|
| Yii version | 3.0 |
| Yii Captcha version | 3.0 |
| PHP version | 7.1.17 |
| Operating system | Centos 7 |
Error Line CaptchaAction.php:
Line 135 -> $session->set($name, $this->driver->generateVerifyCode());
2018-09-10 16:11:48 [][-][b2114f69c8f19b10eb52dd4ef45e8b10][error][Error] Error: Call to a member function generateVerifyCode() on null in /home/app.example.com/public_html/vendor/yiisoft/yii-captcha/src/CaptchaAction.php:135
Stack trace:
#0 /home/app.example.com/public_html/vendor/yiisoft/yii-captcha/src/CaptchaAction.php(157): yii\captcha\CaptchaAction->getVerifyCode(true)
#1 /home/app.example.com/public_html/vendor/yiisoft/yii-captcha/src/CaptchaValidator.php(60): yii\captcha\CaptchaAction->validate('durayoc', false)
#2 /home/app.example.com/public_html/vendor/yiisoft/yii-core/src/validators/Validator.php(288): yii\captcha\CaptchaValidator->validateValue('durayoc')
#3 /home/app.example.com/public_html/vendor/yiisoft/yii-core/src/validators/Validator.php(274): yii\validators\Validator->validateAttribute(Object(terabytesoft\webapp\forms\ContactForm), 'verifyCode')
#4 /home/app.example.com/public_html/vendor/yiisoft/yii-core/src/base/Model.php(364): yii\validators\Validator->validateAttributes(Object(terabytesoft\webapp\forms\ContactForm), Array)
#5 /home/app.example.com/public_html/vendor/terabytesoft/web-app/src/forms/ContactForm.php(75): yii\base\Model->validate()
#6 /home/app.example.com/public_html/vendor/terabytesoft/web-app/src/controllers/SiteController.php(137): terabytesoft\webapp\forms\ContactForm->contact('[email protected]...', Object(yii\swiftmailer\Mailer))
#7 /home/app.example.com/public_html/vendor/yiisoft/yii-core/src/base/InlineAction.php(57): terabytesoft\webapp\controllers\SiteController->actionContact()
#8 /home/app.example.com/public_html/vendor/yiisoft/yii-core/src/base/Controller.php(160): yii\base\InlineAction->runWithParams(Array)
#9 /home/app.example.com/public_html/vendor/yiisoft/yii-core/src/base/Module.php(542): yii\base\Controller->runAction('contact', Array)
#10 /home/app.example.com/public_html/vendor/yiisoft/yii-web/src/Application.php(94): yii\base\Module->runAction('site/contact', Array)
#11 /home/app.example.com/public_html/vendor/yiisoft/yii-core/src/base/Application.php(525): yii\web\Application->handleRequest(Object(yii\web\Request))
#12 /home/app.example.com/public_html/public/index.php(11): yii\base\Application->run()
#13 /home/app.example.com/public_html/public/index.php(12): {closure}()
#14 {main}
2018-09-10 16:11:48 [][-][b2114f69c8f19b10eb52dd4ef45e8b10][info][application] $_GET = []
$_POST = [
'_csrf' => 'SH6DPURm8UrDfzGezPwDgUTVfyti8eGXiXEfdM1-6jQdC9FwHTGpDZMRR_uoj2j7FLQlYQOyldjOGEssuh2Ffw=='
'ContactForm' => [
'name' => 'prueba'
'email' => '[email protected]'
'subject' => 'prueba'
'body' => 'prueba'
'verifyCode' => 'durayoc'
]
'contact-button' => ''
]
$_FILES = []
$_COOKIE = [
'PHPSESSID' => 'b2114f69c8f19b10eb52dd4ef45e8b10'
'_csrf' => 'UuRMYWXGPnvedskzPaZJaCtOGiTXwcoK'
]
$_SESSION = [
'__flash' => []
'__captcha/site/captcha' => 'durayoc'
'__captcha/site/captchacount' => 2
]
$_SERVER = [
'PATH' => '/bin:/usr/bin'
'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'
'HTTP_ACCEPT_ENCODING' => 'gzip, deflate'
'HTTP_ACCEPT_LANGUAGE' => 'en,gl;q=0.9,und;q=0.8,ru;q=0.7,pt;q=0.6,es;q=0.5'
'HTTP_CONNECTION' => 'keep-alive'
'CONTENT_TYPE' => 'application/x-www-form-urlencoded'
'CONTENT_LENGTH' => '305'
'HTTP_COOKIE' => 'PHPSESSID=b2114f69c8f19b10eb52dd4ef45e8b10; _csrf=UuRMYWXGPnvedskzPaZJaCtOGiTXwcoK'
'HTTP_HOST' => 'app.example.com'
'HTTP_REFERER' => 'http://app.example.com/site/contact'
'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
'HTTP_CACHE_CONTROL' => 'max-age=0'
'HTTP_ORIGIN' => 'http://app.example.com'
'HTTP_UPGRADE_INSECURE_REQUESTS' => '1'
'HTTP_ALEXATOOLBAR_ALX_NS_PH' => 'AlexaToolbar/alx-4.0.3'
'DOCUMENT_ROOT' => '/home/app.example.com/public_html/public'
'REMOTE_ADDR' => '999.999.999.999'
'REMOTE_PORT' => '50479'
'SERVER_ADDR' => '999.999.999.999'
'SERVER_NAME' => 'app.example.com'
'SERVER_PORT' => '80'
'REQUEST_URI' => '/site/contact'
'REDIRECT_URL' => '/site/contact'
'REDIRECT_STATUS' => '200'
'HAVE_REWITE' => '1'
'LSWS_EDITION' => 'Openlitespeed 1.4.37'
'X-LSCACHE' => 'on,crawler'
'SCRIPT_FILENAME' => '/home/app.example.com/public_html/public/index.php'
'QUERY_STRING' => ''
'SCRIPT_NAME' => '/index.php'
'SERVER_PROTOCOL' => 'HTTP/1.1'
'SERVER_SOFTWARE' => 'LiteSpeed'
'REQUEST_METHOD' => 'POST'
'PHP_SELF' => '/index.php'
'REQUEST_TIME_FLOAT' => 1536595908.1685
'REQUEST_TIME' => 1536595908
@terabytesoftw how did you configure the Captcha ?
In the view:
<?php
use yii\bootstrap4\ActiveForm;
use yii\captcha\Captcha;
use yii\helpers\Html;
<?= $form->field($model, 'verifyCode', [
'labelOptions' => ['id' => 'verifyCode'],
])->widget(Captcha::class, [
'template' => '{input}<div class="text-center">' . '<b>' .
$this->app->t('basic', 'Captcha Code') . ':' . '</b>' . '{image}</div>',
'options' => [
'class' => 'form-control',
'oninput' => 'this.setCustomValidity("")',
'oninvalid' => 'this.setCustomValidity("' . $this->app->t('basic', 'Enter Captcha Code Here') . '")',
'placeholder' => $this->app->t('basic', 'Captcha Code'),
'required' => true,
'style' => 'margin-bottom:10px',
'tabindex' => '5',
],
])->label('<b>' . $this->app->t('basic', 'Captcha Code') . '</b>') ?>
In the model:
public function rules()
{
return [
// verifyCode needs to be entered correctly
['verifyCode', \yii\captcha\CaptchaValidator::class],
];
}