How to implement verification in php: 1. Declare the "session_start();" function; 2. Create the code to implement the verification code; 3. Declare an empty variable before the verification code is implemented to store the verification code. ;4. Use POST method to receive the verification code.
#The operating environment of this article: Windows7 system, PHP7.1, Dell G3 computer.
How to implement verification in php?
PHP implements verification code verification function
The verification code is verified using SESSION function in PHP to achieve.
Declare the function session_start(); at the top to tell the server that we want to use this function.
session_start();
The next thing we use is the code to implement the verification code. Here we use English numeric codes as an example.
$image = imagecreatetruecolor(100, 30); //创建一个100×30的画布 $white = imagecolorallocate($image,255,255,255);//白色 imagefill($image,0,0,$white);//覆盖黑色画布
Then declare an empty variable before the verification code is implemented to store the verification code.
$session = ""; //空变量 ,存放验证码 for($i=0;$i<4;$i++){ $size = 6; $x = $i*25+mt_rand(5,10); $y = mt_rand(5,10); $sizi_color = imagecolorallocate($image,mt_rand(80,220),mt_rand(80,220),mt_rand(80,220)); $char = join("",array_merge(range('a','z'),range('A','Z'),range(0,9))); $char = str_shuffle($char); $char = substr($char,0,1); imagestring($image,$size,$x,$y,$char,$sizi_color); $session .= $char ; //把验证码的每一个值赋值给变量 } $_SESSION['session'] = $session; //这个变量的值与用户输入的值相等
for($k=0;$k<200;$k++){ $rand_color = imagecolorallocate($image,mt_rand(50,200),mt_rand(50,200),mt_rand(50,200)); imagesetpixel($image,mt_rand(1,99),mt_rand(1,29),$rand_color); } for($n=0;$n<5;$n++){ $line_color = imagecolorallocate($image,mt_rand(80,220),mt_rand(80,220),mt_rand(80,220)); imageline($image,mt_rand(1,99),mt_rand(1,29),mt_rand(1,99),mt_rand(1,29),$line_color); } header('content-type:image/png');//设置文件输出格式 imagepng( $image ); //以png格式输出$image图像 imagedestroy( $image ); //销毁图像
Use POST method to receive verification code. The strtolower function makes the server case-insensitive. This can effectively reduce the user's input error rate.
if(isset($_POST['session'])){ session_start(); if(strtolower($_POST['session'])==strtolower($_SESSION['session'])){ echo'<font color="#0000CC">输入正确</form>'; }else{ echo '<font color="#CC0000"><b>输入错误</b></font>'; } exit(); }
The following is the HTML page code.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>确认验证码</title> </head> <body> <form method="post" action="./tushu.php"> <p>验证码图片:<img id="img" border="1" src="http://localhost//xxx.php" style="max-width:90%" style="max-width:90%" alt="How to implement proofreading in php" ></p> <a href="javascript:void(0)" rel="external nofollow" onclick="document.getElementById('img').src='http://localhost//xxx.php'">看不清?换一个</a> <p>请输入图片中的验证码:<input type="text" name="session" value=""/></p> <p><input type="submit" value="提交" style="padding:6px 10px;"></p> </form> </body> </html>
Here is a special explanation that an event onclick has been added to the HTML code. When the user cannot recognize the current verification code, he or she does not need to refresh the browser, and can directly click "Can't see clearly? Change another one" to change the verification code. .
Recommended study: "PHP Video Tutorial"
The above is the detailed content of How to implement proofreading in php. For more information, please follow other related articles on the PHP Chinese website!