Kod pengesahan untuk pembangunan PHP
Banyak tapak web akan mempunyai kod pengesahan semasa log masuk. Di bawah ini kami akan memperkenalkan cara melaksanakan fungsi kod pengesahan.
Terdapat bahagian ini dalam kod halaman log masuk sebelumnya:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no" /> <title>登录页面实例展示</title> <link rel="stylesheet" type="text/css" href="/phpMyAdmin/login.css"/> </head> <body> <p> <span> <input type="text" name="code" id="code" class="pf_ipt_verify w230" placeholder="验证码" autocomplete="off" tabindex="3"/> <img src="/phpMyAdmin/code.php" onClick="this.src='/phpMyAdmin/code.php?nocache='+Math.random()" style="cursor:hand"> </span> </p> </body> </html>
Ini adalah gambar kod pengesahan yang kita lihat pada halaman tersebut. Dengan memberikan imej kod pengesahan acara klik, anda boleh mengklik imej sekali dan menukar nombor yang berbeza.
Selain itu, cara kod pengesahan dijana ialah kod berikut:
<?php session_start(); Header("Content-type:image/PNG"); $im = imagecreate(150,45); $back = imagecolorallocate($im, 245, 245, 245); imagefill($im, 0,0, $back); $vcodes = ""; for($i = 0; $i < 4; $i++){ $font = imagecolorallocate($im, rand(100, 255), rand(0, 100), rand(100, 255)); $authnum = rand(0, 9); $vcodes .= $authnum; imagestring($im, 5, 50 + $i * 10, 20, $authnum, $font); } $_SESSION['VCODE'] = $vcodes; for($i=0;$i<200;$i++) { $randcolor = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255)); imagesetpixel($im, rand()%150, rand()%150, $randcolor); // } imagepng($im); imagedestroy($im); ?>
Ini ialah program latar belakang untuk penjanaan kod.
Nilai kod dalam kod back-end log masuk Satu adalah untuk menilai sama ada terdapat input, dan satu lagi adalah untuk menilai sama ada input adalah betul:
if(!$_POST['code']){ echo('验证码不能为空'); return; }else if($_POST['code']!=$_SESSION['VCODE']){ echo('验证码不正确'); return; }