رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خطا در Captcha (حل شد)
#1
سلام.

در موقع validate فرم، برا فیلد verifyCode خطا میده.
با print_r مقدار وارد شده verifyCode رو دریافت میکنم که مقدار درسته اما خطا میده.

$form->field($order, 'verifyCode')->widget(Captcha::className(),['template' => $template_captcha])

public function rules()
{
   return [
       [['verifyCode'], 'captcha'],
   ];
}

public function actions()
{
   return [
       'error' => [
            'class' => 'yiiwebErrorAction',
        ],
       'captcha' => [
            'class' => 'yiicaptchaCaptchaAction',
            'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            'fontFile' => Yii::$app->basePath.'/web/fonts/captcha.ttf',
            'maxLength' => 5,
            'minLength'=>5'     
            'width' => 100,
        ],
   ];
}

لطفا راهنمایی کنید.

متشکرم.
پاسخ
تشکر شده توسط:
#2
خط fixedVerifyCode رو حذف کنید ببینید درست میشه؟
پاسخ
تشکر شده توسط:
#3
توی این صفحه نوشته بود rule رو باید ایطوری تعریف کنید:

[['verifyCode'], 'captcha', 'captchaAction' => 'Controller-name/captcha'],

و این:

$form->field($order, 'verifyCode')
   ->widget(Captcha::className(),
           [
                'template' => $template_captcha,
                'captchaAction' => 'Controller-name/captcha',
            ])

اینم نوشتم ولی کار نکرد.
پاسخ
تشکر شده توسط:
#4
بجای Controller-name اسم کنترلر خودتون رو بگذارین.
پاسخ
تشکر شده توسط:
#5
یه نگاه به فرم تماس پروژه Skeleton بندازین ببینید چطور کار میکنه.
پاسخ
تشکر شده توسط:
#6
rule رو بصورت زیر تعریف کردم:
[['verifyCode'], 'captcha', 'captchaAction' => 'orders/userinformation'],

حالا یه خطای دیگه میده:

نقل قول:

Exception 'yiibaseUnknownMethodException' with message 'Calling unknown method: yiibaseInlineAction::getVerifyCode()'

in C:wampwwwshoppingvendoryiisoftyii2baseComponent.php:285


skeleton کجای پروژه است؟
پاسخ
تشکر شده توسط:
#7
منظورم پروژه پیشفرض هست
پاسخ
تشکر شده توسط:
#8
ضمناً فقط اسم کنترلر رو عوض کنید توی رول. اکشن همون captcha باید باقی بمونه.
پاسخ
تشکر شده توسط: abdollah110110
#9
درسته rule رو بصورت controller-name/captcha نوشتم خطای زیر حل شد:

نقل قول:

Exception 'yiibaseUnknownMethodException' with message 'Calling unknown method: yiibaseInlineAction::getVerifyCode()'

in C:wampwwwshoppingvendoryiisoftyii2baseComponent.php:285

اما همچنان به خود verifyCode خطا میده.
در واقع برگشتم سر جای اولم.
پاسخ
تشکر شده توسط:
#10
در ویوی مربوط به کنترلر کد زیر رو نوشتم:

$form->field($order, 'verifyCode')->widget(Captcha::className(),[
    'captchaAction' => 'orders/captcha',
    'template' => $template_captcha,
])

مشکل کاملا حل شد.


خیلی ممنون استاد.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 4 مهمان