Maison  >  Article  >  développement back-end  >  Bibliothèque de codes de vérification Laravel

Bibliothèque de codes de vérification Laravel

韦小宝
韦小宝original
2017-11-24 09:19:221399parcourir

Il existe de nombreuses bibliothèques d'images codes de vérification disponibles dans Laravel Cet article présente l'une d'entre elles Laravel : gregwar/captcha. , plus couramment utilisé dans Laravel. Présentons les détails d'utilisation ci-dessous :

Tout d'abord, ajoutez la configuration suivante à composer.json :

"require": {
        ...
        "gregwar/captcha": "1.*"
    },

Ensuite, c'est fait. commandes :

composer update

Ensuite, vous pouvez l'utiliser normalement. Il existe de nombreuses façons de l'utiliser en fonction des besoins spécifiques de développement.

Vous pouvez enregistrer l'image du code de vérification sous forme de fichier :

<?php$builder->save(&#39;out.jpg&#39;);

Vous pouvez directement afficher l'image sur la page Web :

<?php
header(&#39;Content-type: image/jpeg&#39;);
$builder->output();

Vous pouvez générer des images en ligne :

<img src="<?php echo $builder->inline(); ?>" />

Ce qui suit montre l'une des méthodes d'utilisation, qui génère directement des images sur la page Web.

Définir un contrôleur :

<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

//Référencer l'espace de noms correspondant

use Gregwar\Captcha\CaptchaBuilder;
use Session;

class KitController extends Controller {

   /**
    * Display a listing of the resource.
    *
    * @return Response
    */
   public function captcha($tmp)
   {
       //生成验证码图片的Builder对象,配置相应属性
       $builder = new CaptchaBuilder;
       //可以设置图片宽高及字体
       $builder->build($width = 100, $height = 40, $font = null);
       //获取验证码的内容
       $phrase = $builder->getPhrase();

       //把内容存入session
       Session::flash(&#39;milkcaptcha&#39;, $phrase);
       //生成图片
       header("Cache-Control: no-cache, must-revalidate");
       header(&#39;Content-Type: image/jpeg&#39;);
       $builder->output();
   }
}

Ci-dessous, nous pouvons définir le routeur correspondant accède à cette image de code de vérification, modifiez router.php :

Route::get(&#39;kit/captcha/{tmp}&#39;, &#39;KitController@captcha&#39;);

Vous pouvez désormais accéder et voir cette image via l'URL spécifique.

Code de vérification

Il est relativement simple à écrire à l'intérieur du formulaire, il suffit d'y jeter un oeil :

<input type="text" name="captcha" class="form-control" style="width: 300px;">
<a onclick="javascript:re_captcha();" >
  <img src="{{ URL(&#39;kit/captcha/1&#39;) }}"  alt="验证码" title="刷新图片" 
       width="100" height="40" id="c2c98f0de5a04167a9e427d883690ff6" border="0"/>
</a>
<script>  
  function re_captcha() {
    $url = "{{ URL(&#39;kit/captcha&#39;) }}";
        $url = $url + "/" + Math.random();
        document.getElementById(&#39;c2c98f0de5a04167a9e427d883690ff6&#39;).src=$url;
  }
</script>

Enfin, vérifiez le code de vérification correspondant sur la page de soumission du formulaire , et la bibliothèque est également Nous fournissons les méthodes correspondantes :

$userInput = $request->get(&#39;captcha&#39;);
if($builder->testPhrase($userInput)) {
    //用户输入验证码正确
    return &#39;您输入验证码正确&#39;;
} else {
    //用户输入验证码错误
    return &#39;您输入验证码错误&#39;;
}

À ce stade, le code de vérification est terminé. Ce qui précède est le processus d'utilisation de la bibliothèque de codes de vérification gregwar/captcha de Laravel. Si vous êtes intéressé, accédez au site Web PHP chinois pour en rechercher plus~

<.> Recommandations associées :

Tutoriel Laravel sur l'utilisation de la base de données MongoDB

Laravel Développer la fonction d'envoi de code de vérification SMS dans

Exemples d'utilisation de la validation de modèle dans Laravel


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn