Fungsi log masuk (3)
Persediaan sebelumnya dan halaman muka hadapan log masuk telah selesai. Kini kami akan memperkenalkan kod fungsi log masuk.
First Buat fail login.php untuk menulis kod PHP login kami. 2: Sama ada nama pengguna atau kata laluan, kami sentiasa menghantar nilai kepada program php melalui borang front-end, dan kemudian mengesahkannya, langkah seterusnya adalah untuk mendapatkan nilai yang diluluskan oleh front-end terlebih dahulu borang sebelum kita boleh pergi Sahkan sama ada ia betul atau salah Kod untuk mendapatkan nilai adalah seperti berikut:
<?php $link = mysqli_connect("localhost","root","root","joke");//注意后面的這幾個(gè)參數(shù),服務(wù)器名,數(shù)據(jù)庫(kù)的用戶名,密碼,數(shù)據(jù)庫(kù)名。密碼沒(méi)有可以不填 if (!$link) { die("連接失敗: " . mysqli_connect_error()); } ?>Kenapa kita pos dan bukannya dapatkan? Ini memerlukan melihat borang di kaunter hadapan kami dan maklumat dalam teg borang:
<?php $username = $_POST['username']; $password = $_POST['password']; ?>
tindakan memberitahu tempat maklumat dihantar dan cara kaedah dihantar Di sini kami adalah kaedah pos
Langkah 3: Kami mendapat Tetapan Selepas nilainya, anda perlu mengesahkan sama ada nilainya sama dengan nilai dalam pangkalan data Ia mestilah sama sebelum anda boleh log masuk. Kod pengesahan adalah seperti berikut:
<form action="login.php" method="post"> ... </form>
Langkah 4: Selepas menanyakan keputusan, kami. akan memulakan pengesahan:
<?php $sql="select * from login where username = '{$username}' and password = '{$password}'";//先從數(shù)據(jù)庫(kù)中查詢戶名和密碼 $rs=mysqli_query($link,$sql); //執(zhí)行sql查詢 $row=mysqli_fetch_array($rs);//將查詢的結(jié)果放入變量$row中 ?>
Nampaknya saya terlepas sesuatu?
...
...
Kod pengesahan nampaknya tidak disebut....
Akhirnya, mari kita bercakap tentang kod pengesahan.
Kami memerlukan program untuk menjana kod pengesahan Pertama, buat fail PHP yang dipanggil passcode.php untuk menulis dan menjana kod pengesahan.
Di bawah saya akan tuliskan kaedah penulisan terperinci kod pengesahan Setiap kunci dan perkara yang sukar akan diulas, supaya anda boleh memahami, memberi perhatian dan membaca kod:
<?php if($row) { if ($username == $row['username'] && $password == $row['password']) //判斷表單獲取的用戶名,密碼和數(shù)據(jù)庫(kù)中的是否一致 { echo "登陸成功,正在為你跳轉(zhuǎn)至后臺(tái)頁(yè)面"; header("location:index.html");//如果一致會(huì)跳轉(zhuǎn)到后臺(tái)的首頁(yè) } }else{ echo "賬號(hào)或密碼錯(cuò)誤" . "<br/>"; echo "<a href='login.html'>返回登陸頁(yè)面</a>";//如果不一致,將重新跳轉(zhuǎn)至登錄頁(yè)面重新登錄 } ?>
Jika anda ingin memahami fungsi setiap satu. baris kod dengan cara yang jelas dan spesifik, anda boleh bercakap mengenainya Tukar kod (cuba untuk menjadi sangat berbeza daripada sebelumnya, supaya ia jelas), dan kemudian lihat jika perubahan itu berbeza daripada sebelumnya akan mengetahui fungsi baris kod ini.
Langkah seterusnya ialah mengesahkan kod pengesahan Lihat kod:
<?php //設(shè)置開(kāi)啟session session_start(); $image = imagecreatetruecolor(100, 30); //設(shè)置驗(yàn)證碼圖片大小的函數(shù) //設(shè)置驗(yàn)證碼顏色,用法:imagecolorallocate(int im, int red, int green, int blue); $bgcolor = imagecolorallocate($image,255,255,255); //#ffffff //區(qū)域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的區(qū)域著色,col 表示欲涂上的顏色 imagefill($image, 0, 0, $bgcolor); //設(shè)置變量 $captcha_code = ""; //生成隨機(jī)數(shù)字 for($i=0;$i<4;$i++){ //設(shè)置字體大小 $fontsize = 10; //設(shè)置字體顏色,隨機(jī)顏色 $fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120)); //0-120深顏色 //設(shè)置數(shù)字 $fontcontent = rand(0,9); //10>.=連續(xù)定義變量 $captcha_code .= $fontcontent; //設(shè)置坐標(biāo) $x = ($i*100/4)+rand(5,10); $y = rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); } //存到session $_SESSION['authcode'] = $captcha_code; //增加干擾元素,設(shè)置雪花點(diǎn) for($i=0;$i<200;$i++){ //設(shè)置點(diǎn)的顏色,50-200顏色比數(shù)字淺,不干擾閱讀 $pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200)); //imagesetpixel — 畫(huà)一個(gè)單一像素 imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor); } //增加干擾元素,設(shè)置橫線 for($i=0;$i<4;$i++){ //設(shè)置線的顏色 $linecolor = imagecolorallocate($image,rand(80,220), rand(80,220),rand(80,220)); //設(shè)置線,兩點(diǎn)一線 imageline($image,rand(1,99), rand(1,29),rand(1,99), rand(1,29),$linecolor); } //設(shè)置頭部,image/png header('Content-Type: image/png'); //imagepng() 建立png圖形函數(shù) imagepng($image); //imagedestroy() 結(jié)束圖形函數(shù) 銷毀$image imagedestroy($image); ?>
Baiklah, ini adalah fungsi log masuk kami yang lengkap.