Heim > PHP-Framework > YII > Hauptteil

yii meldet bei der Eingabe des richtigen Bestätigungscodes einen Fehler

王林
Freigeben: 2019-12-24 13:44:52
Original
1611 Leute haben es durchsucht

yii meldet bei der Eingabe des richtigen Bestätigungscodes einen Fehler

Als ich eine Anfrage stellte, stellte ich fest, dass ich den richtigen Bestätigungscode eingegeben hatte, es wurde jedoch angezeigt, dass der Bestätigungscode falsch sei.

Die letzte Spur des Codes ergab, dass der Bestätigungscode nach Abschluss der Überprüfung neu generiert wird, wenn das Modell vor dem Speichern separat validiert wird. Wenn wir dann Model save, führen wir auch eine Validierungsüberprüfung durch. Während der Überprüfung wurde der Bestätigungscode neu generiert, sodass er nicht übereinstimmt.

Problemerkennung:

Wir können nach framework/web/widgets/captcha/CCaptchaAction.php suchen, um das Problem leicht zu finden.

<?php
class CaptchaAction extends CCaptchaAction{
    public function validate($input, $caseSensitive)
    {
        $code = $this->getVerifyCode();
        $valid = $caseSensitive ? ($input === $code) : !strcasecmp($input, $code);
        $session = Yii::app()->session;
        $session->open();
        $name = $this->getSessionKey() . &#39;count&#39;;        
        if (!Yii::app()->request->isAjaxRequest) {
            $session[$name] = $session[$name] + 1;
        }        
        // 这里会重新生成
        if ($session[$name] > $this->testLimit && $this->testLimit > 0) {
                    $this->getVerifyCode(true);
        }
                return $valid;
    }
}
Nach dem Login kopieren
// 如果这里用到了验证码,就会出问题$model = new Test();

$model->validate();

$model->save();
Nach dem Login kopieren
// 这样是正确的$model = new  Test();
// 把需要验证的 attribute 放进去,排除验证码字段
$model->validate(array(&#39;test1&#39;,&#39;test2&#39;));
$model->save()
Nach dem Login kopieren

Empfohlene verwandte Artikel und Tutorials: yii-Tutorial

Das obige ist der detaillierte Inhalt vonyii meldet bei der Eingabe des richtigen Bestätigungscodes einen Fehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage