|
|
|
ต้องการทำหน้า login หน้าเดียว โดยใช้ทั้ง ผู้ใช้ กับ admin จะเขียนเงื่อนไขยังไงคะ |
|
|
|
|
|
|
|
จะสร้าง session ออกเป็น 2 ตัวเช่น
1. userid คือ id ของ user
2. status คือ สถานะว่าเป็น user หรือ admin
|
|
|
|
|
Date :
2015-12-16 03:52:46 |
By :
sensugaz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
table user
id integer unsign autoincrement
nm varchar(60)
psw varchar(16)
staff enum ['Admin','Staff','User']
login.php
Code (PHP)
<?php
session_start();
function getMember(){
//่ส่วนของการคิวรี่ login เปรียบเทียบกับ ตาราง user เขียนเอาเองนะครับ
if ( $rs->num_row){
$_SESSION['profile']= $result->fetch_assoc(); return true;
}else return false;
}
if( getMember()){
switch($_SESSION['profile']['staff']){
case 'Admin': // do you want
break;
case 'Staff': // ......
break;
case 'User': // ......
break;
}
}
|
|
|
|
|
Date :
2015-12-16 08:00:13 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
//DATABASE
define('DB_TYPE', 'mysql');
define('DB_HOST', 'localhost');
define('DB_NAME', 'database');
define('DB_USER', 'root');
define('DB_PASS', '');
$username = htmspecialchars($_POST['username']);
$password = htmspecialchars(($_POST['password']);
$pdo = new PDO(DB_TYPE . ':host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
//ตาราง admin
$stmt = $pdo->prepare("SELECT * FROM :table WHERE username = :username AND password = :password");
$stmt->bindValue(":table ", 'admin');
$stmt->bindValue(":username ", $username);
$stmt->bindValue(":password ", $password);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(count($data) > 0){// ถ้าเจอในตาราง admin
session_start();
$_SESSION['username'] = $data[0]['username'];
$_SESSION['class'] = 'admin'; //กำหนดว่าเป็น admin
header('location:http://localhost/web/dashboard.php');
exit;
}
//ถ้าไม่เจอค่อยมาหาตาราง user
//ตาราง user
$stmt->bindValue(":table ", 'user');
$stmt->bindValue(":username ", $username);
$stmt->bindValue(":password ", $password);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(count($data) > 0){// ถ้าเจอในตาราง user
session_start();
$_SESSION['username'] = $data[0]['username'];
$_SESSION['class'] = 'user'; //กำหนดว่าเป็น admin
header('location:http://localhost/web/uesr.php');
exit;
}else{ //ถ้าไม่เจอเลย
echo 'username หรือ password ไม่ถูกต้อง';
}
* โค้ดนี้ยังไม่ได้ผ่านการทดสอบ ผิดพลาดตรงไหนก็ไปแก้ไขเอานะ
|
|
|
|
|
Date :
2015-12-16 14:04:35 |
By :
noMerzy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณนะคะ เดี่ยวจะลองดูคะ
|
|
|
|
|
Date :
2015-12-16 21:49:09 |
By :
jkchilla02 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|