|
|
|
รบกวนช่วยดู code Login แบบมี level user โดยใช้ OOP PHP PDO แบบไม่ต้องเลือก select option ทีนะครับ |
|
|
|
|
|
|
|
ขอดู schema
|
|
|
|
|
Date :
2020-10-20 16:11:41 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2020-10-20 16:47:59 |
By :
smilelovely0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากรู้เลเวล อะไร ก็ ส่งค่ากลับมา ด้วย หรือจะเก็บเป็น session cookie ไว้ใช้ครั้งต่อไป ก็ว่าไป
ถ้าจะใช้ cookie ก็ใส่ hash encode เข้าไปหน่อย จะได้เดาอยากว่ามันคืออะไร
|
|
|
|
|
Date :
2020-10-20 17:02:14 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะคล้ายๆกับที่ Facebook ทำครับ เวลาใส่ User ไปจะดึงรูปโปรไฟล์มาแสดง ตอนกรอกรหัสผิด
ก็คือ เอา User ไปค้นใน DB แล้วเอา Level มาแสดงครับ
แต่ถ้ากรณี User นั้นๆ มีหลาย Level ก็ต้องแสดงให้เลือกอยู่ดีครับ (ตาม Level ที่มี)
|
|
|
|
|
Date :
2020-10-21 07:40:59 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ฝึกสกิลการใช้ Replace tools
index.php
<?php
session_start();
include_once('php-plugins/class_admin.php');
$admin = new Admin();
if(isset($_POST['btn_login']))
{
$user = trim(strip_tags($_POST['log_user']));
$pass = trim(strip_tags($_POST['log_pass']));
//$level = trim(strip_tags($_POST['log_level']));
if($admin->login($user, $pass)) // ไม่ต้องเช็ค level
{
$_SESSION['m_id'] = $user;
//$_SESSION['m_level'] = $level; // ย้ายไป class Admin
header('location:it-management/index.php');
}
else
{
$msg = '
<div class="alert alert-warning alert-dismissible fade show text-center" role="alert">
<strong>Error!</strong> : Username or Password.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<i class="ik ik-x"></i>
</button>
</div>';
}
}
if(isset($_GET['logout']))
{
session_destroy();
header('location:index.php');
}
if(!$admin->cekSession())
{
?>
class_admin.php
<?php
class Admin
{
private $db;
public function __construct()
{
try
{
$conn = new PDO('mysql:host=localhost;dbname=itmaster_db', 'root', '');
$this->db = $conn;
}
catch(PDOException $e)
{
print $e->getMessage();
die();
}
}
public function login($user, $pass)
{
// ตัด level ออกจาก query
$select_stmt = $this->db->prepare("SELECT * FROM tbl_usermaster WHERE m_username = :user");
$select_stmt->bindParam(':user', $user);
//$select_stmt->bindParam(':level', $level); // ไม่ต้อง bind
try
{
$select_stmt->execute();
if($select_stmt->rowCount() > 0)
{
$row = $select_stmt->fetch(PDO::FETCH_ASSOC);
$hashed = $row['m_password'];
if( crypt($pass, $hashed) == $hashed )
{
$_SESSION['m_level'] = $row['m_level']; // ย้ายมาไว้ตรงนี้
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
catch(PDOException $e)
{
print $e->getMessage();
die();
}
}
public function cekSession()
{
if(isset($_SESSION['m_id']) && $_SESSION['m_level'] == 1 )
{
header('location:it-management/index.php');
return true;
}
else if(isset($_SESSION['m_id']) && $_SESSION['m_level'] == 4 )
{
header('location:it-management/index.php');
return true;
}
else
{
return false;
}
}
}
?>
ใน comment ลบออกได้เลย...ที่แช่ไว้ เพื่อให้รู้ว่าเอาส่วนไหนออกบ้าง
คำเตือน ไม่ได้เทส เทสไม่ได้ ไม่มี DDL/DML (Sample Data)
|
|
|
|
|
Date :
2020-10-21 15:38:34 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|