به طور پیشفرض ثبت‌نام در شیرترانیکس از کد امنیتی یا Captcha برخورداره، اما در عضویت از طریق ایمیل یا عضویت از طریق دعوتنامه کد امنیتی در نظر گرفته نشده! برای اضافه کردن کد امنیتی کافیه به فایل signup.php رجوع کرده و کد زیر رو پیدا کنیم :

        if( $C->USERS_EMAIL_CONFIRMATION ) {
            $reg_id = intval($this->param('regid'));
            $reg_key    = $db1->e($this->param('regkey'));
            $db1->query('SELECT email, fullname, invited_code FROM unconfirmed_registrations WHERE id="'.$reg_id.'" AND confirm_key="'.$reg_key.'" LIMIT 1');
            if( ! $obj = $db1->fetch_object() ) {
                $D->submit  = FALSE;
                $D->error   = TRUE;
                $D->errmsg  = 'signup_err_confirmlink';
                $D->errmsg_lngkeys  = array();
                $D->steps   = 3;
                $this->load_template('signup-step1.php');
                return;
            }
            $invited_code   = trim(stripslashes($obj->invited_code));
            $D->email       = stripslashes($obj->email);
            $D->fullname    = stripslashes($obj->fullname);
        }
        else {
            $D->captcha_key = '';
            $D->captcha_word    = '';
            $D->captcha_html    = '';
            list($D->captcha_word, $D->captcha_html)    = generate_captcha(5);
            $D->captcha_key = md5($D->captcha_word.time().rand());
            $_SESSION['captcha_'.$D->captcha_key]   = $D->captcha_word;
        }

کد زیر رو جایگزین کنیم :

        if( $C->USERS_EMAIL_CONFIRMATION ) {
            $reg_id = intval($this->param('regid'));
            $reg_key    = $db1->e($this->param('regkey'));
            $db1->query('SELECT email, fullname, invited_code FROM unconfirmed_registrations WHERE id="'.$reg_id.'" AND confirm_key="'.$reg_key.'" LIMIT 1');
            if( ! $obj = $db1->fetch_object() ) {
                $D->submit  = FALSE;
                $D->error   = TRUE;
                $D->errmsg  = 'signup_err_confirmlink';
                $D->errmsg_lngkeys  = array();
                $D->steps   = 3;
                $this->load_template('signup-step1.php');
                return;
            }
            $invited_code   = trim(stripslashes($obj->invited_code));
            $D->email       = stripslashes($obj->email);
            $D->fullname    = stripslashes($obj->fullname);
            $D->captcha_key = '';
            $D->captcha_word    = '';
            $D->captcha_html    = '';
            list($D->captcha_word, $D->captcha_html)    = generate_captcha(5);
            $D->captcha_key = md5($D->captcha_word.time().rand());
            $_SESSION['captcha_'.$D->captcha_key]   = $D->captcha_word;
        }
        else {
            $D->captcha_key = '';
            $D->captcha_word    = '';
            $D->captcha_html    = '';
            list($D->captcha_word, $D->captcha_html)    = generate_captcha(5);
            $D->captcha_key = md5($D->captcha_word.time().rand());
            $_SESSION['captcha_'.$D->captcha_key]   = $D->captcha_word;
        }

این کد رو پیدا کنیم :

if( !$D->error && !$C->USERS_EMAIL_CONFIRMATION ) {
                if( !isset($_POST['captcha_key'],$_POST['captcha_word']) || !isset($_SESSION['captcha_'.$_POST['captcha_key']]) || $_SESSION['captcha_'.$_POST['captcha_key']]!=strtolower($_POST['captcha_word']) ) {
                    $D->error   = TRUE;
                    $D->errmsg  = 'signup_err_captcha';
                }
            }

اینو جایگزین کنیم :

            if( !$D->error ) {
                if( !isset($_POST['captcha_key'],$_POST['captcha_word']) || !isset($_SESSION['captcha_'.$_POST['captcha_key']]) || $_SESSION['captcha_'.$_POST['captcha_key']]!=strtolower($_POST['captcha_word']) ) {
                    $D->error   = TRUE;
                    $D->errmsg  = 'signup_err_captcha';
                }
            }

بعدش به signup-step2.php در فولدر html قالب رجوع کرده و کد زیر رو پیدا کنیم :

                <?php if( ! $C->USERS_EMAIL_CONFIRMATION ) { ?>
                <tr>
                    <td class="regparam" style="padding-top:13px;"><?= $this->lang('signup_step2_form_captcha') ?></td>
                    <td dir="ltr">
                        <input type="hidden" name="captcha_key" value="<?= $D->captcha_key ?>" />
                        <?= $D->captcha_html ?><br />
                        <input type="text" maxlength="20" name="captcha_word" value="" autocomplete="off" class="reginp" style="width:168px; margin-top:5px;" />
                    </td>
                </tr>
                <?php } ?>

این کد رو جایگزین کنیم :

                <tr>
                    <td class="regparam" style="padding-top:13px;"><?= $this->lang('signup_step2_form_captcha') ?></td>
                    <td dir="ltr">
                        <input type="hidden" name="captcha_key" value="<?= $D->captcha_key ?>" />
                        <?= $D->captcha_html ?><br />
                        <input type="text" maxlength="20" name="captcha_word" value="" autocomplete="off" class="reginp" style="width:168px; margin-top:5px;" />
                    </td>
                </tr>

برای اطلاع از آخرین اخبار و تخفیف‌ها کانال تلگرام شیرترانیکس رو دنبال کنید.


بازگشت »