Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > [PHP] ช่วยแนะนำวิธีการเช็คสิทธิในการเข้าในงานเว็บในกรณีที่มีหลายหน้าที่หน่อยครับ



 

[PHP] ช่วยแนะนำวิธีการเช็คสิทธิในการเข้าในงานเว็บในกรณีที่มีหลายหน้าที่หน่อยครับ

 



Topic : 111113



โพสกระทู้ ( 71 )
บทความ ( 0 )



สถานะออฟไลน์




คือผมกำลังเขียนเว็บ check login เข้ามาถ้า user คนนั้นมีหน้าที่มากกว่า 1หน้าที่ ยกตัวอย่าง userคนนี้เป็น admin,manager,staff ก็ให้ไปหน้าที่ให้เลือกว่าคุณจะเข้าทำงานในหน้าที่อะไร อยากได้แบบที่เป็น array ช่วยแนะนำหน่อยครับ

รูปตัวอย่าง
logingเช็ดเสร็คให้ตรวจสอบหน้าที่



Tag : PHP, MySQL, HTML/CSS, Windows









ประวัติการแก้ไข
2014-09-05 16:26:49
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-09-05 15:21:17 By : funrun View : 1158 Reply : 9
 

 

No. 1



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


แบบนี้ เลยครับ พอสร้างเทเบิล มาเก็บ USER สิทธิ์ ให้เลือกสิทธิ์ว่าจะเก็บสิทธิ์อะไร

จำแนก user แต่ละสิทธิ์ (แบบสร้างเช็คบอคขึ้นมาไรงี้ให้มันส่งค่า เป็น 1 2 3.....)
เช่น 1 = admin
2 = manager
3 =.....ว่าไป
เพื่อจะเอาไปเก็บไว้ใน user_right
ที่ทำตรงนี้เพราะเราจะได้จำแนกสิทธิ์ได้(อย่าลืมทำหน้าเพิ่มลบแก้ไขด้วยนะครับ)

แล้วเอาสิทธิ์ที่กำหนด ไป อ้างอิง(จอย)กับเทเบิลกำหนดเมนู ครับ เช่น
สิทธิ์
right_id right_act right_url
1 จัดการระบบไรว่าไป index.php
1 จัดการระบบไรว่าไป management..... .php
2 ........................................................
แล้วทำเมนูเพิ่มลบแก้ไขเข้าไป ก็โอเคแล้วครับ

ถ้าอยากเช็คสิทธิ์ ไม่ให้เขาเข้ากระโดดข้ามสิทธิ์ไปได้
ก็ต้องเวลาสร้างเมนู ให้ส่งไอดี ไปด้วยแล้ว ให้ เช็คว่าสิทธิ์ นั้นๆ สามารถ เข้าไปเพจนี้ได้ไหม โอเคแล้วครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 15:35:15 By : summawat
 


 

No. 2



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : summawat เมื่อวันที่ 2014-09-05 15:35:15
รายละเอียดของการตอบ ::
.ถ้าทำตามที่ผมบอกคุณก็ไม่ต้องไปใส่หลายๆ หน้าที่เลยครับ คุณแค่กำหนดหน้าที่เดียวไปแล้ว ให้สิทธ์เขา ตอน กำหนดเมนูเท่านั้นเองครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 15:36:37 By : summawat
 

 

No. 3



โพสกระทู้ ( 68 )
บทความ ( 0 )



สถานะออฟไลน์


ก็กำหนดสิมธิ์ให้เขา เลย ครับ เช่น

ตั้ง tb_xxxx แล้ว ใส่ฟิลด์ status ไป จากนั้นอาจจะกำหนด status ให้ admin=0,staff=1,user=2

จากนั้นก็สร้าง tb_status ไว้ กำหนด id_status 0,1,2 || admin=0,staff=1,user=2
แล้วก็ check action User ครับ
กำหนดให้ check id_status

if id_status == 0
else "admin.php"

นอกจากนั้นก็ให้ else หน้าที่ อยากให้ ไป เลย ครับ

ประมาณนี้ครับ

ปรับประยุกต์เอานะครับ


ประวัติการแก้ไข
2014-09-05 16:19:06
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 16:18:13 By : The_Colosseum
 


 

No. 4



โพสกระทู้ ( 71 )
บทความ ( 0 )



สถานะออฟไลน์


คือ ผมใช้วิธีแปลงเป็นเลขฐานสองเช็คว่าเป็นหน้าทีอะไรบ้าง แล้วก็แปลงกลับเป็นเลขฐานสิบแล้วเอาเลขที่ได้ไปใช้งานต่อ ตามตัวอย่าง เลยอย่างได้วิธีที่มันไม่ยุ่งยากเท่าที่ใช้งานอยู่ อยากได้เป็นแบบอาเรย์ รบกวนแนะนำที

ตาราง admin เก็บ ID ที่เป็น admin
ตาราง manager เก็บ ID ที่เป็น manager

Code (PHP)
$admin =0;
$manager =0;

$admin = mysql_query("SELECT * FROM admin WHERE ID = '$ID '");
        $count = mysql_num_rows($admin );
        if ($count > 0) {
            $admin = 1;            
        } 
$manager = mysql_query("SELECT * FROM manager WHERE ID = '$ID '");
        $count = mysql_num_rows($manager );
        if ($count > 0) {
            $manager = 1;            
        } 

$filter =  bindec($admin.$manager);

if ($filter == 1) {
    header("location:manage.php");
} else if ($filter == 2) {
    header("location:admin.php");
} else if ($filter == 3) {
    header("location:filter.php");
} else ($filter == 0) {
    header("location:login.php");
} 




ประวัติการแก้ไข
2014-09-05 16:52:36
2014-09-05 16:53:43
2014-09-05 17:05:44
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 16:49:51 By : funrun
 


 

No. 5



โพสกระทู้ ( 68 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : funrun เมื่อวันที่ 2014-09-05 16:49:51
รายละเอียดของการตอบ ::
เดวมา ตอบให้นะครับ เหมือนว่าเคสนี้เคยทำอยู่ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 17:02:45 By : The_Colosseum
 


 

No. 6



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : funrun เมื่อวันที่ 2014-09-05 16:49:51
รายละเอียดของการตอบ ::
ถ้าทำแบบนี้้โปรแกรมจะไม่ยืดหยุ่นนะครับเวลา เราจะแก้ต้องแก้ที่ code ไม่ได้แก้ ที่ ตัว หน้า GUI ได้ เวลาเอาไปใช้งานจะลำบากนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 17:21:53 By : summawat
 


 

No. 7



โพสกระทู้ ( 68 )
บทความ ( 0 )



สถานะออฟไลน์


check login ครับ
<?php // การเปิดเพื่อเขียน ภาษา PHP
	session_start(); //เปิด Session
	if($_SESSION['Status'] == "staff") //เงื่อนไข ถ้าStatus เป็น staff ให้ไปหน้าstaff
	{
		header("location:staff.php");// ลิงค์เชื่อไปยังหน้า staff
		exit();
	}
		if($_SESSION['Status'] == "USER")//เงื่อนไข ถ้าStatus เป็น USER ให้ไปหน้า USER
	{
		header("location:User.php");// ลิงค์เชื่อไปยังหน้า USER
		exit();
	}	
		if($_SESSION['Status'] == "ADMIN")//เงื่อนไข ถ้าStatus เป็น ADMIN ให้ไปหน้า ADMIN
	{
		header("location:Admin.php");// ลิงค์เชื่อไปยังหน้า ADMIN
		exit();
	}
// ปิดการเขียน PHP ?>





ส่วนนี่เป็นการเช็คเมื่อเข้าหน้า ครับ ผมใช้เป็นการส่ง SESSION เอาครับ
เช็ค Status การเข้าไปหน้านั้นๆครับ
<?php
header("Content-Type:text/html; charset=utf-8");
session_start();
	if($_SESSION['UserID'] == "")
	{
		echo "กรุณา...กลับไปหน้าล็อกอิน!";
		echo "<meta http-equiv='refresh' content='2;URL=login.php' />";
		exit();
	}


ครับ ขอผมประมาณนี้ครับ เมื่อเปิดเข้าระบบมา
มันก็จะเด้งเข้ามาใหล็อกอินก่อน จากนั้นล็อกอิน ใช้การ check_login ครับ
ว่าStatus อยู่ในระดับไหน พอเช็คเสร็จก็เข้าหน้าที่ต้องการครับ

แต่ละหน้าของผมจะตั้ง if($_SESSION['xxxx'] == "") ไว้
ว่าระดับไหนเข้าได้หรือไม่ได้ ครับ

สมมติ ว่าอยากให้หน้านี้ เข้าได้ทั้ง User และ Staff ก็ตั้ง

if($_SESSION['UserID'] == "")
{
if($_SESSION['StaffID'] == "")
{

ประมาณนั้นอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 19:14:31 By : The_Colosseum
 


 

No. 8



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

tb_user_level
-------------------------------------------- id | level_title -------------------------------------------- 1 | manager 2 | admin 3 | staff --------------------------------------------



tb_user
-------------------------------------------- id | user | ref_level_id -------------------------------------------- 1 | CAT | 1 2 | RAT | 2 3 | BAT | 3 --------------------------------------------


Code (PHP)
if ($level == 1) {
    header("location:manage.php");
} else if ($level == 2) {
    header("location:admin.php");
} else if ($level == 3) {
    header("location:filter.php");
} else ($level == 0) {
    exit('Error Level.');
}



ประวัติการแก้ไข
2014-09-05 19:54:56
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 19:53:52 By : {Cyberman}
 


 

No. 9

Guest


Code (PHP)
$filter =  bindec($admin.$manager);


จากด้านบน

filter = 00 => no user
filter = 01 => เป็น manager
filter = 10 => เป็น admin
filter = 11 => เป็น admin และ manager

ตรง $filte = 00,01,10 ตรงนี้ทำได้แล้วครับ ติดตรง $filter = 11 ที่เป็น admin และ manager หลังจากที่ login แล้วให้เด้งไปหน้า filter.php เพื่อเลือกว่าจะทำหน้าที่อะไรตามรูป
check login

DB ที่ทำไว้ประมาณนี้
tb2
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-09-05 22:12:35 By : funrun
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [PHP] ช่วยแนะนำวิธีการเช็คสิทธิในการเข้าในงานเว็บในกรณีที่มีหลายหน้าที่หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่