欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

php語(yǔ)言

php實(shí)現(xiàn)驗(yàn)證碼制作

時(shí)間:2025-03-22 02:13:30 php語(yǔ)言 我要投稿
  • 相關(guān)推薦

php實(shí)現(xiàn)驗(yàn)證碼制作

  驗(yàn)證碼分為:數(shù)字驗(yàn)證碼,字母驗(yàn)證碼,數(shù)字加字母驗(yàn)證碼,圖片驗(yàn)證碼,漢子驗(yàn)證碼,視頻驗(yàn)證碼等!由于原理相同,且根據(jù)平時(shí)的使用范圍來(lái)看,今天在這里只講數(shù)字驗(yàn)證碼,字母驗(yàn)證碼,數(shù)字加字母驗(yàn)證碼。下面是由百分網(wǎng)小編為大家整理的php實(shí)現(xiàn)驗(yàn)證碼制作,喜歡的可以收藏一下!了解更多詳情資訊,請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!

  首先,看一張圖了解驗(yàn)證碼生成的過(guò)程。

  (1)生成驗(yàn)證碼底圖

 。2)驗(yàn)證碼內(nèi)容

  (3)生成驗(yàn)證碼

 。4)對(duì)比校驗(yàn)

  驗(yàn)證碼實(shí)現(xiàn)的核心技術(shù)分析

 。╝)底圖的實(shí)現(xiàn),并添加干擾元素

 。╞)生成驗(yàn)證內(nèi)容

  (c)驗(yàn)證內(nèi)容保存在服務(wù)端

 。╠)驗(yàn)證內(nèi)容的校驗(yàn)

  下面看代碼實(shí)現(xiàn)的過(guò)程

  <?php

  /*

  這段代碼 實(shí)現(xiàn)了產(chǎn)生 隨機(jī)數(shù)字,隨機(jī)數(shù)字+字母驗(yàn)證碼

  */

  session_start();

  $image = imagecreatetruecolor(100, 30);

  //imagecreatetruecolor() 返回一個(gè)圖像標(biāo)識(shí)符,代表了一幅大小為 x_size 和 y_size 的黑色圖像。

  $bgcolor = imagecolorallocate($image, 255, 255, 255);

  // imagecolorallocate — 為一幅圖像分配顏色

  imagefill($image,0,0,$bgcolor);

  /*   生成字母驗(yàn)證碼

  for($i=0;$i<4;$i++)

  {

  $fontsize = 6;

  // $fontcolor = imagecolorallocate($image, 0, 0, 0);

  $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

  $fontcontent =rand(0,9);

  $x = ($i*100/4) + rand(5,10);

  $y = rand(5,10);

  // imagestring — 水平地畫(huà)一行字符串

  imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);

  }

  */

  // 生成字母加數(shù)字的隨機(jī)驗(yàn)證碼

  $captcha_code = "";

  for($i=0;$i<4;++$i)

  {

  $fontsize = 6;

  $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

  $data = "abcdefghijklmnopqrstuvwxtz123456789";

  $fontcontent = substr($data,rand(0,strlen($data)),1);

  $captcha_code.=$fontcontent;

  $x = ($i*100/4) + rand(5,10);

  $y = rand(5,10);

  imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);

  }

  $_SESSION['authcode']=$captcha_code;

  //  給驗(yàn)證碼添加點(diǎn)干擾項(xiàng)

  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);

  // bool imagesetpixel ( resource $image , int $x , int $y , int $color );

  // imagesetpixel() 在 image 圖像中用 color 顏色在 x,y 坐標(biāo)(圖像左上角為 0,0)上畫(huà)一個(gè)點(diǎn)。

  }

  // 增加線(xiàn)的干擾

  for($i=0;$i<3;++$i)

  {

  $linecolor = imagecolorallocate($image, rand(80,220), rand(80,220), rand(80,220));

  imageline($image, rand(1,99), rand(1,29), rand(1,99), rand(1,29), $linecolor);

  }

  header("Content-Type: image/png");

  imagepng($image);

  imagedestroy($image);

  ?>

【php實(shí)現(xiàn)驗(yàn)證碼制作】相關(guān)文章:

php如何實(shí)現(xiàn)驗(yàn)證碼06-13

PHP實(shí)現(xiàn)簡(jiǎn)易blog的制作01-25

如何實(shí)現(xiàn)php登陸表單提交CSRF及驗(yàn)證碼05-20

php驗(yàn)證碼代碼怎么寫(xiě)04-02

實(shí)現(xiàn)PHP實(shí)現(xiàn)限制IP訪問(wèn)02-23

一個(gè)漂亮的php驗(yàn)證碼類(lèi)01-10

用php生成帶有雪花背景的驗(yàn)證碼01-08

仿照TP框架自帶的PHP驗(yàn)證碼類(lèi)12-29

php生成動(dòng)態(tài)圖片驗(yàn)證碼代碼07-23