Heim  >  Artikel  >  Backend-Entwicklung  >  Tutorial zum Schreiben eines rein digitalen Verifizierungscodes in PHP

Tutorial zum Schreiben eines rein digitalen Verifizierungscodes in PHP

零下一度
零下一度Original
2017-06-30 16:34:182753Durchsuche

Lassen Sie uns nun über den einfachen, rein numerischen Verifizierungscode sprechen.

Wenn Sie ein Anfänger sind, wird empfohlen, die Kommentare // Nummern meines Codes Schritt für Schritt zu befolgen. Am einfachsten ist es, den gesamten Code zu kopieren.

Erstellen Sie ein neues captcha.php:

<?php  //11>设置session,必须处于脚本最顶部  session_start();     
/*$image = imagecreatetruecolor(100, 30);    
//1>设置验证码图片大小的函数  
//5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue);  
$bgcolor = imagecolorallocate($image,255,255,255); //#ffffff  
//6>区域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的区域着色,col 表示欲涂上的颜色  imagefill($image, 0, 0, $bgcolor);  //10>设置变量  $captcha_code = "";*/        
//7>生成随机数字  for($i=0;$i<4;$i++){    //设置字体大小    $fontsize = 6;        //设置字体颜色,随机颜色    $fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120));      
//0-120深颜色    //设置数字    $fontcontent = rand(0,9);    //10>.=连续定义变量    $captcha_code .= $fontcontent;      //设置坐标    $x = ($i*100/4)+rand(5,10);    $y = rand(5,10);     
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);  }  //10>存到session  $_SESSION[&#39;authcode&#39;] = $captcha_code;  //8>增加干扰元素,设置雪花点  for($i=0;$i<200;$i++){    
//设置点的颜色,50-200颜色比数字浅,不干扰阅读    $pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200));        
//imagesetpixel — 画一个单一像素    imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);  }  //9>增加干扰元素,设置横线  for($i=0;$i<4;$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);  }   
//2>设置头部,image/png  header(&#39;Content-Type: image/png&#39;);  //3>imagepng() 建立png图形函数  imagepng($image);  //4>imagedestroy() 结束图形函数 销毁$image  imagedestroy($image);
 
接着就是静态页的代码了:index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional
//EN" "、www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns=" 
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title>
</head><body><form method="post" action="./form.php">  
<p>验证码: <img id="captcha_img" border=&#39;1&#39; src=&#39;./captcha.php?r=echo rand(); ?>&#39; style="width:100px; height:30px" />    
<a href="javascript:void(0)" onclick="document.getElementById(&#39;captcha_img&#39;).src=&#39;./captcha.php?r=&#39;+Math.random()">换一个?</a>  </p>  <P>请输入验证码:<input type="text" name=&#39;authcode&#39; value=&#39;&#39;/></p>  <p><input type=&#39;submit&#39; value=&#39;提交&#39; style=&#39;padding:6px 5px;&#39;/></p></form></body></html>
从index.html可以看到,提交的表单是到form.php的,所以还要有一个判断的form.php代码:
<?php  header("Content-Type:text/html;charset=utf-8");      
//设置头部信息  //isset()检测变量是否设置  if(isset($_REQUEST[&#39;authcode&#39;])){    
session_start();    //strtolower()小写函数    if(strtolower($_REQUEST[&#39;authcode&#39;])== $_SESSION[&#39;authcode&#39;]){      
//跳转页面      echo "<script language=\"javascript\">";      echo "document.location=\"./form.php\"";      
echo "</script>";    }else{      //提示以及跳转页面      echo "<script language=\"javascript\">";      
echo "alert(&#39;输入错误!&#39;);";      echo "document.location=\"./form.php\"";      echo "</script>";    }    
exit(); 
 }


Das obige ist der detaillierte Inhalt vonTutorial zum Schreiben eines rein digitalen Verifizierungscodes in PHP. 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