ระบบ Login-Logout โดยตรวจสอบ Admin และ Member พร้อม code [PHP + MD5+MySqli]
ใน workshop จะแนะนำวิธีการสร้างระบบ login โดยมีการตรวจสอบผู้ใช้ที่เป็น admin และ member และใช้ form login เดียวกัน เงือนไขคือ ถ้าผู้ใช้ที่เป็น admin ทำการ login จะเข้าสู่หน้าของ Admin เพื่อบริหารจัดการระบบฯ และผู้ใช้ที่เป็น member เมื่อทำการ login ก็จะเข้าสู่หน้าของ member ซึ่งสามารถนำไปประยุกต์ใช้กับระบบต่างๆ ได้
รวมคลิปสอน php+mysqli เต็มระบบ 98 คลิป
เริ่มต้นด้วยการสร้างฐานข้อมูลเพื่อใช้ทดสอบระบบ ตาราง user ส่วนฐานข้อมูลแล้วแต่เราจะตั้งชื่อนะครับ แต่ใน workshop นี้จะชื่อ mydb
ในส่วนของ password จะเก็บเป็นแบบ MD5 นะครับ สอนถอดตามคลิปด้านบนครับ
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","password","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> |
ขอแนะนำระบบโหวต/เลือกตั้งออนไลน์
สนใจ inbox มาที่ https://www.facebook.com/sornwebsites/ (ไม่แพงจ้า)
login.php
ข้อสังเกต ในฟิลด์ Userlevel จะแยกเก็บระบบของสมาชิกคือ A = admin, M=member ซึ่งก็สามารถเปลี่ยนและนำไปประยุกต์ใช้ให้เข้ากับระบบของเรานะครับ
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 |
<?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"); } if ($_SESSION["Userlevel"]=="M"){ //ถ้าเป็น member ให้กระโดดไปหน้า user_page.php Header("Location: user_page.php"); } }else{ echo "<script>"; echo "alert(\" user หรือ password ไม่ถูกต้อง\");"; echo "window.history.back()"; echo "</script>"; } }else{ Header("Location: form.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 27 28 |
<?php session_start();?> <?php if (!$_SESSION["UserID"]){ //check session Header("Location: form.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 <?php //session_destroy();?> </p> <p> </p> <p><a href="logout.php">Log out</strong></a></p> <p> </p> </body> </html> <?php }?> |
ขายระบบพร้อมใช้ ระบบแจ้งซ่อมออนไลน์สำหรับองค์กร php7 ค่าตัว 8,000 บาท
กรณีเป็นสมาชิกจะเข้าสู่หน้าหลักของสมาชิก 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 27 28 29 |
<?php session_start();?> <?php if (!$_SESSION["UserID"]){ Header("Location: form_login.php"); }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 Member</h1> <p><strong>hi </strong>: <?php print_r($_SESSION);?> //show detail login <?php //session_destroy();?> </p> <p><strong> <a href="logout.php">Log out</a></strong></p> </body> </html> <?php }?> |
สุดท้ายไฟล์ออกจากระบบเพื่อล้างค่าการ 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 ระบบแคตตาล็อคออนไลน์ ระบบตะกร้าสินค้า จ่ายครั้งเดียว เข้าเรียนได้ตลอดชีพ
**รายละเอียดเพิ่มเติม คลิก
ฟรีคอร์ส PHP+MySQLi+AdminLTE
ร่วมสนับสนุน ค่ากาแฟ ค่าโฮส devbanban.com และทีมงานได้ที่
ธนาคารกรุงไทย สาขาเดอะมอลล์ท่าพระ
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 878-0-17747-6
————————————————————————————
ธนาคารไทยพาณิชย์ สาขามหาวิทยาลัยราชภัฏธนบุรี
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 406-359094-1
fanpage : https://www.facebook.com/sornwebsites/