ホームページ  >  記事  >  バックエンド開発  >  PHPで検証コード機能を実装する方法

PHPで検証コード機能を実装する方法

(*-*)浩
(*-*)浩オリジナル
2019-09-29 15:04:354383ブラウズ

PHP は、GD ライブラリ を通じて検証コード関数を実装し、サンプルと組み合わせて、PHP 検証コード関連の画像描画および出力操作の実装手法を分析します。参考のために皆さんと共有してください。詳細は次のとおりです:

PHPで検証コード機能を実装する方法

最初に達成された効果を確認してください: (推奨学習: PHP ビデオ チュートリアル )

PHPで検証コード機能を実装する方法

具体的な実装:

<?php
/*PHP实现验证码*/
session_start();//开启会话
//创建画布
$image=imagecreatetruecolor(100,38);
//背景颜色
$bgcolor=imagecolorallocate($image,255,255,255);
imagefill($image,0,0,$bgcolor);
$captch_code=&#39;&#39;;//存储验证码
//随机选取4个数字
for($i=0;$i<4;$i++){
  $fontsize=10;    //
  $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));//随机颜色
  $fontcontent=rand(0,9);
  $captch_code.=$fontcontent;
  $x=($i*100/4)+rand(5,10);  //随机坐标
  $y=rand(5,10);
  imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
/*//字母和数字混合验证码
for($i=0;$i<4;$i++) {
  $fontsize = 10;    //
  $fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));//??????
  $data = &#39;abcdefghijklmnopqrstuvwxyz1234567890&#39;;  //数据字典
  $fontcontent = substr($data, rand(0, strlen($data)), 1);
  $captch_code.=$fontcontent;
  $x = ($i * 100 / 4) + rand(5, 10);
  $y = rand(5, 10);
  imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}*/
$_SESSION[&#39;code&#39;]=$captch_code;
//增加干扰点
for($i=0;$i<200;$i++){
  $pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
  imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);//
}
//增加干扰线
for($i=0;$i<3;$i++){
  $linecolor=imagecolorallocate($image,rand(80,280),rand(80,220),rand(80,220));
  imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
}
//输出格式
header(&#39;content-type:image.png&#39;);
imagepng($image);
//销毁图片
imagedestroy($image);

フォームとフォームの接続を実現するには"change one" 関数の実装:

<input type="text" placeholder="验证码" name="verifycode" class="captcha">
<br>
<img  id="captcha_img" src="captcha.php?r=<?php echo rand();? alt="PHPで検証コード機能を実装する方法" >" alt="验证码">
<label>
<a href="javascript:void(0)" rel="external nofollow" onclick="document.getElementById(&#39;captcha_img&#39;).src=&#39;captcha.php?r=&#39;+Math.random()">换一个</a> 
</label>

captcha.php の後には、検証コードを変更する機能を実現するためのランダムなパラメーターが続きます。この機能の変更は、単純な JS を通じて実現できます。そのような関数がない場合、パラメータは使用できません。

以上がPHPで検証コード機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。