Heim  >  Artikel  >  Backend-Entwicklung  >  Einfache Implementierungsmethode des Verifizierungscodes in thinkPHP

Einfache Implementierungsmethode des Verifizierungscodes in thinkPHP

不言
不言Original
2018-06-07 16:53:542507Durchsuche

Dieser Artikel stellt hauptsächlich die einfache Implementierungsmethode des Verifizierungscodes in thinkPHP vor und analysiert die Implementierungsprinzipien, Schritte und Aufruftechniken des thinkPHP-Verifizierungscodes in Form von Beispielen

Die Beispiele in diesem Artikel werden erklärt. Lernen Sie die einfache Implementierungsmethode des Verifizierungscodes in thinkPHP kennen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die Darstellung der Operation ist wie folgt:

1.php-Seite generiert die Funktion „Bestätigungscode“.

public function verify(){
    // 验证码
    import("@.Util.Image");
    Image::buildImageVerify(4,1,'png',40,20,'verify');
}
/**
* 生成图像验证码
* @static
* @access public
* @param string $length 位数
* @param string $mode 类型
* @param string $type 图像格式
* @param string $width 宽度
* @param string $height 高度
* @return string
*/
static function buildImageVerify($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify') {
    import('ORG.Util.String');
    $randval = String::randString($length, $mode);
    session($verifyName, md5($randval));
    $width = ($length * 10 + 10) > $width ? $length * 10 + 10 : $width;
    if ($type != 'gif' && function_exists('imagecreatetruecolor')) {
      $im = imagecreatetruecolor($width, $height);
    } else {
      $im = imagecreate($width, $height);
    }
    $r = Array(225, 255, 255, 223);
    $g = Array(225, 236, 237, 255);
    $b = Array(225, 236, 166, 125);
    $key = mt_rand(0, 3);
    $backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]);  //背景色(随机)
    $borderColor = imagecolorallocate($im, 100, 100, 100); //边框色
    imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);
    imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);
    $stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
    // 干扰
    for ($i = 0; $i < 10; $i++) {
      imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $stringColor);
    }
    for ($i = 0; $i < 25; $i++) {
      imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $stringColor);
    }
    for ($i = 0; $i < $length; $i++) {
      imagestring($im, 5, $i * 10 + 5, mt_rand(1, 8), $randval{$i}, $stringColor);
    }
    Image::output($im, $type);
}

Übergeben Sie das Bild beim Generieren an die Sitzung.

2. Auf der Seitenseite wird

<img id="verifyImg" src="{sh::U(&#39;Agent/Login/verify&#39;)}" onClick="changeVerify()" title="点击刷新验证码" /></p>

direkt in src aufgerufen.

Klicken Sie, um Änderungen auszulösen.

function changeVerify(){
 verifyURL = "{sh::U(&#39;Agent/Login/verify&#39;)}";
 $("#verifyImg").attr("src",verifyURL);
 return false;
}

3. Hintergrundüberprüfung: Vergleichen Sie, ob das Beitragsfeld mit dem Bestätigungscode in der Sitzung übereinstimmt.

if($_SESSION[&#39;verify&#39;] != md5($_POST[&#39;verify&#39;])) {
  $this->error(&#39;验证码错误!&#39;);
}

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So implementieren Sie phpqrcode, um QR-Code mit Logo in Thinkphp3.2.3 zu generieren

thinkphp Umfassende Analyse des integrierten Verifizierungscodes

thinkPHP Framework implementiert die Methode zur Generierung von Barcodes

Das obige ist der detaillierte Inhalt vonEinfache Implementierungsmethode des Verifizierungscodes in thinkPHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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