Cara melaksanakan pengesahan dalam PHP: 1. Isytihar fungsi "session_start(); 2. Buat kod untuk melaksanakan kod pengesahan; 3. Isytiharkan pembolehubah kosong sebelum kod pengesahan dilaksanakan untuk disimpan kod pengesahan ;4. Gunakan kaedah POST untuk menerima kod pengesahan.
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP7.1, komputer Dell G3.
Bagaimana untuk melaksanakan pengesahan dalam PHP?
PHP melaksanakan fungsi pengesahan kod pengesahan
Pengesahan kod pengesahan adalah untuk gunakan fungsi SESI dalam PHP untuk mencapainya.
Isytiharkan fungsi session_start() di bahagian atas; untuk memberitahu pelayan bahawa kami ingin menggunakan fungsi ini.
session_start();
Perkara seterusnya yang kami gunakan ialah kod untuk melaksanakan kod pengesahan. Di sini kami menggunakan kod angka Inggeris sebagai contoh.
$image = imagecreatetruecolor(100, 30); //创建一个100×30的画布 $white = imagecolorallocate($image,255,255,255);//白色 imagefill($image,0,0,$white);//覆盖黑色画布
Kemudian isytiharkan pembolehubah kosong sebelum kod pengesahan dilaksanakan untuk menyimpan kod pengesahan.
$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 ); //销毁图像
Gunakan kaedah POST untuk menerima kod pengesahan. Fungsi strtolower menjadikan pelayan tidak sensitif huruf besar-besaran. Ini boleh mengurangkan kadar ralat input pengguna dengan berkesan.
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(); }
Berikut ialah kod halaman HTML.
<!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="Bagaimana untuk melaksanakan pembacaan pruf dalam 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>
Berikut ialah penjelasan khas bahawa acara onclick telah ditambahkan pada kod HTML Apabila pengguna tidak dapat mengenali kod pengesahan semasa, tidak perlu memuat semula penyemak imbas dan klik terus "Boleh'. t lihat dengan jelas? Tukar satu lagi" untuk menukarnya. Kod pengesahan.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pembacaan pruf dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!