Heim > PHP-Framework > Denken Sie an PHP > So ändern Sie den Standard-Bestätigungscode von thinkphp

So ändern Sie den Standard-Bestätigungscode von thinkphp

PHPz
Freigeben: 2023-04-13 18:51:32
Original
1117 Leute haben es durchsucht

thinkphp ist ein beliebtes PHP-Framework für die Entwicklung von Webanwendungen. Bei der Verwendung des thinkphp-Frameworks werden häufig Verifizierungscodes benötigt, um die Systemsicherheit zu erhöhen. Die standardmäßigen Verifizierungscodestile und Bilder von thinkphp sind möglicherweise für bestimmte Anwendungsszenarien nicht geeignet und müssen geändert werden. In diesem Artikel erfahren Sie, wie Sie den Standard-Bestätigungscode von thinkphp ändern.

1. Finden Sie den Verifizierungscode-Controller

Im thinkphp-Framework wird der Verifizierungscode von einem integrierten Controller generiert und ausgegeben. Der Quellcode dieses Controllers befindet sich im Bibliotheksdateiverzeichnis des thinkphp-Frameworks. Der allgemeine Pfad lautet: thinkphp/library/think/captcha/Controller.php.

2. Kopieren Sie den Verifizierungscode-Controller

Um Fehler bei Systemaktualisierungen zu vermeiden, die durch die Änderung des Standard-Verifizierungscode-Controllers verursacht werden, sollten Sie den Standard-Verifizierungscode-Controller in ein neues Verzeichnis unter dem Anwendungsverzeichnis kopieren.

Die spezifischen Schritte sind wie folgt:

  1. Erstellen Sie ein neues Verzeichnis, zum Beispiel: applicationextracaptcha
  2. Kopieren Sie die Datei „controllerController.php“ in dieses Verzeichnis.
  3. Ändern Sie den Namespace von Controller.php in: Namespace appextracaptcha;

3. Ändern Sie den Bestätigungscode-Controller

Jetzt können wir den Bestätigungscode-Controller ändern und die Art und Weise ändern, wie der Bestätigungscode generiert und ausgegeben wird.

  1. Ändern Sie die Ausgabemethode

Die Standardausgabemethode des Bestätigungscodes besteht darin, ein Bild im GIF-Format zurückzugeben, und wir können die Ausgabemethode ändern, um andere Arten von Bestätigungscodes zu implementieren. Beispielsweise kann der Verifizierungscode als Bild im SVG-Format ausgegeben werden.

Ändern Sie die Ausgabemethode für den Bestätigungscode wie folgt:

public function show()
{
    $config =    [
        'expire'   =>  3,   //验证码过期时间(s)
        'length'   =>  4,   //验证码长度
        'imageH'   =>  60,   //验证码高度
        'fontSize' =>  20,  //验证码字体大小(px)
        'useCurve' =>  false,  //是否画混淆曲线
        'useNoise' =>  false,  //是否添加杂点
        'bg'       =>  [255, 255, 255], //背景颜色
    ];
    $captcha = new Captcha($config);
    $captcha->codeSet = '0123456789';//只用数字作为验证码
  
    // 输出svg格式的图片
    echo $captcha->entry('svg'); 
}
Nach dem Login kopieren
  1. Ändern Sie die Methode zur Generierung des Bestätigungscodes

Thinkphps Standardmethode zur Generierung von Bestätigungscodes besteht darin, Zahlen und Buchstaben nach dem Zufallsprinzip zu generieren. Wir können die Generierungsmethode auch ändern, um unterschiedliche Anforderungen zu erfüllen . Beispielsweise kann ein Verifizierungscode in chinesischen Schriftzeichen generiert werden.

Ändern Sie die Methode zur Generierung des Bestätigungscodes wie folgt (am Beispiel der Generierung des chinesischen Bestätigungscodes):

public function show()
{
    //引入新字体文件(这里以方正胖头鱼体为例,字体文件需要自己上传)
    $ttf_file = __DIR__ .'/fzpty.ttf';
    $codeSet = '玩家参与游戏,从而培养了自己 的游戏能力'; //验证码文字内容
  
    $config =    [
        'expire'  =>  3,   //验证码过期时间(s)
        'length'  =>  4,   //验证码长度
        'useZh'   => true, //使用中文验证码
        'fontttf' =>  $ttf_file, //指定ttf字体文件
        'imageH'  =>  60,   //验证码高度
        'fontSize' =>  20,  //验证码字体大小(px)
        'useCurve' =>  false,  //是否画混淆曲线
        'useNoise' =>  false,  //是否添加杂点
        'bg'       =>  [255, 255, 255], //背景颜色
    ];
    $captcha = new Captcha($config);
    $captcha->codeSet = $codeSet;//设置验证码文字内容
  
    // 输出svg格式的图片
    echo $captcha->entry('svg'); 
}
Nach dem Login kopieren

Vier. Ändern Sie die Konfigurationsdatei für den Bestätigungscode. Der Thinkphp-Verifizierungscode-Controller liest die Parameter in der Konfigurationsdatei, um die Generierung zu bestimmen und Verifizierungscode-Ausgabemodus. Daher können wir auch die Konfigurationsdatei ändern, um den Zweck der Änderung des Bestätigungscodes zu erreichen.

Die spezifischen Schritte sind wie folgt:

Kopieren Sie die Standard-Verifizierungscode-Konfigurationsdatei des Frameworks in Ihr eigenes Anwendungsverzeichnis.
  1. Öffnen Sie die Bestätigungscode-Konfigurationsdatei config.php des Thinkphp-Frameworks und kopieren Sie sie in das Konfigurationsverzeichnis im Anwendungsverzeichnis , und benennen Sie es in captcha.php um.

Ändern Sie die Konfiguration des Bestätigungscodes
  1. Sie können die zugehörigen Konfigurationsparameter des Bestätigungscodes in captcha.php ändern. Sie können beispielsweise die Länge, Ablaufzeit, Schriftgröße und andere Parameter des Bestätigungscodes ändern:
return [
    'useNoise'    => false, // 是否添加杂点
    'useCurve'    => false, // 是否画混淆曲线
    'fontSize'    => 25,    // 验证码字体大小
    'expire'      => 1800,  // 验证码过期时间(s)
    'length'      => 4,     // 验证码长度
    'fontttf'     => '',    //验证码字体文件路径
    'bg'          => [255, 255, 255], // 验证码背景颜色,如果设置为数组则表示渐变色
];
Nach dem Login kopieren

5. Zusammenfassung

Durch die oben genannten Schritte können wir den Standard-Bestätigungscode von thinkphp ändern, um benutzerdefinierte Stile und Inhalte des Bestätigungscodes zu erreichen . Es ist zu beachten, dass beim Ändern des Verifizierungscode-Controllers und der Konfigurationsdateien die kopierten Dateien im Anwendungsverzeichnis abgelegt werden müssen, um ein Überschreiben nach Versionsaktualisierungen zu vermeiden.

Das obige ist der detaillierte Inhalt vonSo ändern Sie den Standard-Bestätigungscode von thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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