Pembangunan asli PHP fungsi log masuk bahagian belakang untuk laman berita

Kursus kami sebelum ini memperkenalkan anda kepada semua persediaan sebelum membuat fungsi log masuk, mengimport templat, dan membuat pangkalan data tidak melengkapkan persediaan ini, jadi langkah seterusnya adalah untuk kami mula membuat fungsi log masuk !

Pertama kita perlu mencipta fail login.php Fail ini boleh digunakan untuk menulis penghakiman dan pengesahan halaman log masuk Anda juga boleh menulis bahagian html log masuk dan fail php penghakiman log masuk bersama-sama, kerana Kita semua tahu bahawa kod html boleh ditulis dalam fail php! Tetapi kami masih mengesyorkan menulisnya secara berasingan!

Selepas mencipta fail login.php, perkara pertama yang perlu dilakukan ialah menyambung ke pangkalan data, kerana pengesahan seterusnya perlu dibandingkan dengan data!

Saya ingin menyatakan di sini bahawa jika halaman log masuk anda mempunyai kod pengesahan, maka session_start() mesti dihidupkan pada permulaan setiap halaman jika tidak, pengesahan pengesahan kod Tidak, kami mempunyai kod pengesahan di sini jadi saya membuka session_start();

Kod adalah seperti berikut:

<?php
session_start();
// 连接mysql数据库
$link = mysqli_connect('localhost', 'root', 'root');
if (!$link) {
    echo "connect mysql error!";
    exit();
}
// 选中数据库 news为数据库的名字
$db_selected = mysqli_select_db($link, 'news');
if (!$db_selected) {
    echo "<br>selected db error!";
    exit();
}
// 设置mysql字符集 为 utf8
$link->query("set names utf8");
#🎜 🎜#Langkah seterusnya ialah Kami perlu mendapatkan data yang diluluskan oleh borang, kerana kami perlu mendapatkan nama pengguna dan kata laluan yang pengguna masukkan dalam borang, dan kemudian bandingkan dengan pangkalan data untuk melihat sama ada ia benar-benar konsisten!

<?php
$username = $_POST['username'];//获取用户名
$password = $_POST['password'];//获取密码
$code = $_POST['code'];

Berkenaan sama ada untuk menghantar atau menghantar data, ini bergantung pada atribut kaedah dalam borang anda. Kami ada jawatan di sini!


Data telah diperolehi, maka perlu diverifikasi untuk melihat sama ada data yang dimasukkan oleh pengguna benar-benar konsisten dengan data dalam pangkalan data, untuk menentukan sama ada pengguna boleh log masuk menggunakan pernyataan SQL, kodnya adalah seperti berikut:

<?php
if(!empty($_POST)){
    // 查询数据库中是否存在用户信息
    $sql = "select * from user where username = '{$username}' and password = '{$password}'";
    $result = mysqli_query($link,$sql);
    $user = mysqli_fetch_array($result,MYSQL_ASSOC);}

Selepas menanyakan data, bandingkan dua set data:

if($user){
    header("Location: index.php");
}else{
    echo "<script>alert('账户或者密码错误!重新填写')</script>";
}

Sehingga ke tahap ini kita telah mengesahkan nama pengguna dan kata laluan, kemudian kami Terdapat kod pengesahan, jadi kami juga perlu mengesahkan kod pengesahan Di sini saya menggunakan kelas kod pengesahan

1738.png#. 🎜🎜#

#🎜🎜 #code.zip

Kongsi dengan semua orang di sini!

Kemudian kita perlu mengesahkan kod pengesahan Kod tersebut adalah seperti berikut:

if(($_SESSION['authcode']) !== ($code)){               //验证码作对比,验证码页面跟输入的验证码对比
    echo "<script>alert('验证码错误!重新填写')</script>";

Penjelasan: $_SESSION['authcode'] di sini disimpan dalam kelas kod pengesahan kod. Untuk kod pengesahan, kita perlu lulus pengesahan yang dimasukkan oleh pengguna dan disimpan Jika keputusannya konsisten, ia akan lulus!

OK Pada ketika ini fungsi log masuk kami selesai!

Meneruskan pembelajaran
||
<?php session_start(); // 连接mysql数据库 $link = mysqli_connect('localhost', 'root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 选中数据库 news为数据库的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 设置mysql字符集 为 utf8 $link->query("set names utf8"); if(!empty($_POST)){ $username = $_POST['username'];//获取用户名 $password = $_POST['password'];//获取密码 $code = $_POST['code']; // 查询数据库中是否存在用户信息 $sql = "select * from user where username = '{$username}' and password = '{$password}'"; $result = mysqli_query($link,$sql); $user = mysqli_fetch_array($result,MYSQL_ASSOC); if(($_SESSION['authcode']) !== ($code)){ //验证码作对比,验证码页面跟输入的验证码对比 echo "<script>alert('验证码错误!重新填写')</script>"; }elseif($user){ header("Location: index.php"); }else{ echo "<script>alert('账户或者密码错误!重新填写')</script>"; }
  • Cadangan kursus
  • Muat turun perisian kursus