مودل : افزودن recaptcha در فرم login

در مودل تنظیماتی برای فعال کردن captcha  در فرم ورود به سایت , همانند آنچه که در فرم sign up امکان پذیر است   وجود ندارد لذا با تغییراتی اندک در کدهای پلاگین login  مودل می توان به راحتی این امکان را هم برای فرم ورود به سایت و هم برای فرم فراموش کردن پسورد اضافه کرد .

گام اول : افزودن کد زیر در فایل login/index_form.html بلافاصله بعد از  تگ

<input type="password" ...</div>

code :

<?php

if(!empty($CFG->recaptchapublickey)&&!empty($CFG->recaptchaprivatekey)&&!empty($CFG->recaptchaloginform)) {require_once($CFG->libdir . '/form/recaptcha.php');

$captchaform = new MoodleQuickForm_recaptcha;

echo $captchaform->toHtml();}?>

گام دوم :افزودن کد زیر در login/index.php  قبل از خط کامنت زیر

/// Check if the user has actually submitted login data to us

code:

if ($frm && !empty($CFG->recaptchapublickey) && !empty($CFG->recaptchaprivatekey) && !empty($CFG->recaptchaloginform)) {
  if (!empty($frm->recaptcha_response_field)) {
    require_once($CFG->libdir . '/recaptchalib.php');
    $captcha = recaptcha_check_answer($CFG->recaptchaprivatekey, getremoteaddr(), $frm->recaptcha_challenge_field, $frm->recaptcha_response_field);
    if (!$captcha->is_valid) {
      if ($captcha->error == 'incorrect-captcha-sol') {
        $errormsg = get_string('incorrectpleasetryagain', 'auth');
      }
      else {
        $errormsg = $captcha->error;
      }
      $errorcode = 5;
      $user = null;
    }
  }
  else {
    $errormsg = get_string("missingrecaptchachallengefield");
    $errorcode = 5;
    $user = null;
  }
}

گام سوم : افزودن کد زیر در admin/settings/plugins.php بعد ازخط کد زیر (این خط این امکان را می دهد که بتوان امکان فعال بودن کپچا را در فرم لاگین مدیریت کرد )

$temp->add(new admin_setting_configtext('recaptchaprivatekey',...

code :

$temp->add(newadmin_setting_configcheckbox('recaptchaloginform',new lang_string('recaptchaloginform', 'admin'), new lang_string('configrecaptchaloginform', 'admin'), 0));

گام چهارم : افزودن دو کد زیر در lang/en/admin.php  بعد از موارد 1 و 2

1 : $string['configrecaptchapublickey']....

code :

  $string['configrecaptchaloginform'] = 'Enable reCAPTCHA for the login form?';

2: $string['recaptchapublickey'] ...

code :

  $string['recaptchaloginform'] = 'ReCAPTCHA for login form?';

گام پنجم : در مسیر Administration\plugin\Authentication\Manage authentication در انتهای صفحه فیلد های ReCAPTCHA public key و ReCAPTCHA private key را با مقادیر دریافت شده از سایت گوگل پر و سپس تیک recaptchaloginform را فعال نمایید و در آخر فرم را ذخیره نمایید .

 

 

 

 

 

دیدگاه‌ها

تصویر mohamadi

mohamadi (تایید نشده)

با سلام
من کپچا رو توی بخش ثبت نام در مودل فال کردم و از گوگل api آن را دریافت کردم،اما کپچا فعال شد ولی من می خواهم recaptch فعال شود
لطفا راهنمایی کنید

افزودن نظر جدید