ใน workshop จะแนะนำวิธีการสร้างระบบ login – logout โดยมีการตรวจสอบผู้ใช้ที่เป็น admin และ member และใช้ form login เดียวกัน
Workshop PHP Login อื่นๆ
- PHP PDO ระบบ Login – Logout ตรวจสอบสิทธิ์การใช้งานหน้าเว็บ2022 รองรับ PHP7 – PHP8 คลิก
- PHP Login Logout เข้ารหัส password_hash โดยใช้ PASSWORD_BCRYPT (ฟรี Code) คลิก
เงื่อนไขคือ ถ้าผู้ใช้ที่เป็น admin ทำการ login จะเข้าสู่หน้าของ Admin เพื่อบริหารจัดการระบบฯ และผู้ใช้ที่เป็น member เมื่อทำการ login ก็จะเข้าสู่หน้าของ member ซึ่งสามารถนำไปประยุกต์ใช้กับระบบต่างๆ ได้
เริ่มต้นด้วยการสร้างฐานข้อมูลเพื่อใช้ในทดสอบระบบ มี 1 ตาราง คือตาราง user ส่วนฐานข้อมูลแล้วแต่เราจะตั้งชื่อนะครับ แต่ใน workshop นี้จะชื่อ mydb
ในส่วนของ password จะเก็บเป็นแบบ MD5 นะครับ
ข้อมูล Username & Password ในตาราง User
Admin : Username & Password = aaa
User : Username & Password = bbb
1 2 3 4 5 6 7 8 9 10 11 12 13 |
CREATE TABLE `user` ( `ID` int(5) NOT NULL auto_increment, `Username` varchar(50) NOT NULL, `Password` varchar(200) NOT NULL, `Firstname` varchar(100) NOT NULL, `Lastname` varchar(100) NOT NULL, `Userlevel` varchar(1) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; INSERT INTO `user` VALUES (1, 'aaa', '47bce5c74f589f4867dbd57e9ca9f808', 'aaa', 'aaa', 'A'); INSERT INTO `user` VALUES (2, 'bbb', '08f8e0260c64418510cefb2b06eee5cd', 'bbbb', 'bbbb','M'); |
ไฟล์เชื่อมต่อฐานข้อมูล connection.php
1 2 3 4 |
<?php $con= mysqli_connect("localhost","root","yourpassword","mydb") or die("Error: " . mysqli_error($con)); mysqli_query($con, "SET NAMES 'utf8' "); ?> |
ฟอร์ม login form_login.php กำหนดให้ action ไปที่ไฟล์ login.php เพื่อตรวจสอบเงื่อนไขการ login
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php session_start();?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>Form Login</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> </head> <body> <form name="frmlogin" method="post" action="login.php"> <p> </p> <p><b> Login Form </b></p> <p> ชื่อผู้ใช้ : <input type="text" id="Username" required name="Username" placeholder="Username"> </p> <p>รหัสผ่าน : <input type="password" id="Password"required name="Password" placeholder="Password"> </p> <p> <button type="submit">Login</button> <button type="reset">Reset</button> <br> </p> </form> </body> </html> |
ขอแนะนำระบบสอบออนไลน์ 7000 บาท ได้ code & database ทั้งหมด
สนใจ inbox มาที่ https://www.facebook.com/sornwebsites
login.php
ข้อสังเกต ในฟิลด์ Userlevel จะแยกเก็บระบบของสมาชิกคือ A = admin, M=member ซึ่งก็สามารถเปลี่ยนและนำไปประยุกต์ใช้ให้เข้ากับระบบของเรานะครับ
ข้อมูล Username & Password ในตาราง User
Admin : Username & Password = aaa
User : Username & Password = bbb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<?php session_start(); if(isset($_POST['Username'])){ //connection include("connection.php"); //รับค่า user & password $Username = $_POST['Username']; $Password = md5($_POST['Password']); //query $sql="SELECT * FROM User WHERE Username='".$Username."' AND Password='".$Password."' "; $result = mysqli_query($con,$sql); if(mysqli_num_rows($result)==1){ $row = mysqli_fetch_array($result); $_SESSION["UserID"] = $row["ID"]; $_SESSION["User"] = $row["Firstname"]." ".$row["Lastname"]; $_SESSION["Userlevel"] = $row["Userlevel"]; if($_SESSION["Userlevel"]=="A"){ //ถ้าเป็น admin ให้กระโดดไปหน้า admin_page.php Header("Location: admin_page.php"); } else if ($_SESSION["Userlevel"]=="M"){ //ถ้าเป็น member ให้กระโดดไปหน้า user_page.php Header("Location: user_page.php"); }else{ echo "<script>"; echo "alert(\" Username หรือ Password ไม่ถูกต้อง\");"; echo "window.history.back()"; echo "</script>"; } }else{ echo "<script>"; echo "alert(\" Username หรือ Password ไม่ถูกต้อง\");"; echo "window.history.back()"; echo "</script>"; } }else{ Header("Location: form_login.php"); //user & password incorrect back to login again } ?> |
กรณีเป็น admin จะเข้าสู่หน้าหลักของ admin admin_page.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php session_start(); if ($_SESSION['Userlevel'] !='A'){ //check session Header("Location: logout.php"); //ไม่พบผู้ใช้กระโดดกลับไปหน้า login form }else{ ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>Admin page</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <h1>You are Administrator </h1> <p><strong>hi</strong> : <?php print_r($_SESSION);?> //show detail login </p> <p> </p> <p><a href="logout.php">Log out</strong></a></p> <p> </p> </body> </html> <?php } ?> |
ขายระบบพร้อมใช้ ระบบแจ้งซ่อมออนไลน์สำหรับองค์กร php7-php8 ค่าตัว 8,000 บาท ได้ Code & Database ทั้งหมด
สนใจ inbox มาที่ https://www.facebook.com/sornwebsites
กรณีเป็นสมาชิกจะเข้าสู่หน้าหลักของสมาชิก user_page.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php session_start(); if ($_SESSION['Userlevel'] !='M'){ //check session Header("Location: logout.php"); //ไม่พบผู้ใช้กระโดดกลับไปหน้า login form }else{ ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>User page</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <h1>You are User </h1> <p><strong>hi</strong> : <?php print_r($_SESSION);?> //show detail login </p> <p> </p> <p><a href="logout.php">Log out</strong></a></p> <p> </p> </body> </html> <?php } ?> |
ขอแนะนำ ระบบเบิกจ่ายวัสดุ เครื่องเขียน อุปกรณ์ สำนักงาน PHP7 – PHP8 ราคา 5900 บาท ได้ Code & Database ทั้งหมด
สนใจ inbox มาที่ https://www.facebook.com/sornwebsites
สุดท้ายไฟล์ออกจากระบบเพื่อล้างค่าการ login ออก (ลบ session) logout.php
1 2 3 4 5 |
<?php session_start(); session_destroy(); header("Location: form_login.php "); ?> |
ศึกษาความปลอดภัยการเข้ารหัสเพิ่มเติม
- password_hash http://php.net/manual/en/function.password-hash.php
- Security https://phptherightway.com/#security
ขายระบบพร้อมใช้ Cart PHP7, ตะกร้าสินค้า php, E-commerce, ขายสินค้าออนไลน์, เว็บอีคอมเมิร์ช, ตัดสต๊อก 6,900 บาท
ซื้อระบบนี้แถมคอร์สออนไลน์ D02 สอน php ระบบแคตตาล็อคออนไลน์ ระบบตะกร้าสินค้า จ่ายครั้งเดียว เข้าเรียนได้ตลอดชีพ
**รายละเอียดเพิ่มเติม คลิก
ร่วมสนับสนุน ค่ากาแฟ ค่าโฮส devbanban.com ได้ที่
ธนาคารกรุงไทย สาขาเดอะมอลล์ท่าพระ
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 878-0-17747-6
————————————————————————————
ธนาคารไทยพาณิชย์ สาขามหาวิทยาลัยราชภัฏธนบุรี
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 406-359094-1
fanpage : https://www.facebook.com/sornwebsites/