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");//注意后面的这几个参数,服务器名,数据库的用户名,密码,数据库名。密码没有可以不填
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}'";//先从数据库中查询户名和密码
$rs=mysqli_query($link,$sql); //执行sql查询
$row=mysqli_fetch_array($rs);//将查询的结果放入变量$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']) //判断表单获取的用户名,密码和数据库中的是否一致
     { 
         echo "登陆成功,正在为你跳转至后台页面";
         header("location:index.html");//如果一致会跳转到后台的首页
     }
 }else{
     echo "账号或密码错误" . "<br/>";
     echo "<a href='login.html'>返回登陆页面</a>";//如果不一致,将重新跳转至登录页面重新登录
 }
?>

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
//设置开启session
session_start();
$image = imagecreatetruecolor(100, 30);    //设置验证码图片大小的函数
//设置验证码颜色,用法:imagecolorallocate(int im, int red, int green, int blue);
$bgcolor = imagecolorallocate($image,255,255,255); //#ffffff
//区域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的区域着色,col 表示欲涂上的颜色
imagefill($image, 0, 0, $bgcolor);
//设置变量
$captcha_code = "";
//生成随机数字
for($i=0;$i<4;$i++){
    //设置字体大小
    $fontsize = 10;
    //设置字体颜色,随机颜色
    $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);
}
//存到session
$_SESSION['authcode'] = $captcha_code;
//增加干扰元素,设置雪花点
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);
}
//增加干扰元素,设置横线
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);
}
//设置头部,image/png
header('Content-Type: image/png');
//imagepng() 建立png图形函数
imagepng($image);
//imagedestroy() 结束图形函数 销毁$image
imagedestroy($image);
?>

Baiklah, ini adalah fungsi log masuk kami yang lengkap.

Meneruskan pembelajaran
||
<?php session_start(); header("content-type:text/html;charset=utf-8"); //连接数据库 $link = mysqli_connect("localhost","root","root","joke"); if (!$link) { die("连接失败: " . mysqli_connect_error()); } $username =$_POST['username']; $password = $_POST['password']; //判断验证码是否填写并且是否正确 if(!$_POST['code']){ echo('验证码不能为空'); return; }else if($_POST['code']!=$_SESSION['authcode']){ echo('验证码不正确'); return; } $sql="select * from login where username = '{$username}' and password = '{$password}'"; $rs=mysqli_query($link,$sql); //执行sql查询 $row=mysqli_fetch_array($rs); if($row) { // 用户存在; if ($username == $row['username'] && $password == $row['password']) { //对密码进行判断。 echo "登陆成功,正在为你跳转至后台页面"; header("location:index.html"); } }else{ echo "账号或密码错误" . "<br/>"; echo "<a href='login.html'>返回登陆页面</a>"; } // 我这里没有数据库,所以右边会显示连接失败。 ?>
  • Cadangan kursus
  • Muat turun perisian kursus