Devdit
 

ระบบ Login PHP session ฐานข้อมูล MySQL

5.7K

ระบบ Login PHP MySQL พร้อมคำอธิบาย บทความนี้สอนสร้างระบบ Login และ Logout ด้วยภาษา PHP กับฐานข้อมูล MySQL โดยใช้ตัวแปรชนิด SESSION พร้อมแสดงชื่อผู้เข้าใช้งาน สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง ระบบ Login PHP session ฐานข้อมูล MySQL

1. สร้างฐานข้อมูลชื่อ example และรันคำสั่ง SQL เพื่อสร้างตารางชื่อ user

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` char(50) NOT NULL,
  `password` char(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | root     | 01234    |
+----+----------+----------+

 

2. สร้างไฟล์ชื่อ index.php เขียนโค้ดแสดงหน้าฟอร์ม Login และกรณีถ้า Login แล้วให้แสดงชื่อ username ของผู้ Login

<?php
    session_start();

    $error = "";
    isset( $_POST['username'] ) ? $username = $_POST['username'] : $username = "";
    isset( $_POST['password'] ) ? $password = $_POST['password'] : $password = "";
    if( !empty( $username ) && !empty( $password ) ) {
        $c = mysqli_connect( "localhost", "root", "", "example" );
        mysqli_query( $c, "SET NAMES UTF8" );
        $sql = " 
                SELECT * FROM user 
                WHERE 
                ( username = '{$username}' ) AND  
                ( password = '{$password}' ) 
               ";
        $q = mysqli_query( $c, $sql );
        $f = mysqli_fetch_assoc( $q );
        if( isset( $f['id'] ) ) {
            $_SESSION['id'] = $f['id'];
            $_SESSION['username'] = $f['username'];
        } else {
            $error = "Username หรือ Password ไม่ถูกต้อง";
        }
        mysqli_close( $c );
    }
?>
<?php if( empty( $_SESSION['id'] ) ) { ?>
<form action="index.php" method="POST">
    <fieldset> 
        <legend>เข้าสู่ระบบ</legend>
        <input type="text" name="username" placeholder="Username" required>
        <input type="password" name="password" placeholder="Password" required>
        <input type="submit" value="Login">
        <?=$error;?>
    </fieldset>
</form>
<?php } else { ?>
<fieldset> 
    <legend>ยินดีต้อนรับ</legend>
    <div>คุณ <b><?=$_SESSION['username'];?></b> <a href="logout.php">ล็อกเอาท์</a></div>
</fieldset>    
<?php } ?>

3. สร้างไฟล์ชื่อ logout.php ทำหน้า Logout ออกจากระบบ

<?php
    session_start();
    unset(
        $_SESSION['id'],
        $_SESSION['username']
    );
    header("Location: index.php");
?>

คำอธิบาย

ระบบ Login PHP session ฐานข้อมูล MySQL มีรายละเอียด และลำดับขั้นตอนดังนี้

1. สร้างฐานข้อมูลชื่อ example และตารางชื่อ user ประกอบด้วย 3 columns คือ id, username และ password

2. สร้างโค้ดรับค่าตัวแปร username และ password จากนั้นนำไป query เพื่อดึงข้อมูล id และ username จากฐานข้อมูล MySQL

3. กรณี username และ password มีอยู่ในฐานข้อมูล MySQL จะสร้างตัวแปร SESSION เก็บค่า id และ username

4. กรณีไม่สามารถ Login ได้ตัวแปร error จะเก็บข้อความ “Username หรือ Password ไม่ถูกต้อง” เพื่อเอามาแสดงที่หน้าเว็บไซต์

5. if( empty( $_SESSION['id'] ) ) กรณีตัวแปร SESSION id เป็นค่าว่างเปล่า จะแสดงหน้าฟอร์ม Login

6. กรณีถ้าตัวแปร SESSION id ไม่ใช้ค่าว่างเปล่าจะแสดงส่วนยินดีต้อนรับ พร้อมชื่อ username และลิงก์สำหรับล็อกเอาท์

7. กรณีถ้าผู้ใช้งานกดปุ่มล็อกเอาท์ โปรแกรมจะวิ่งไปที่หน้า logout.php เพื่อลบค่าตัวแปร SESSION id และ username ออก เป็นการ Logout ออกจากระบบ

แก้ไข 1 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ