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

Registered : 108,206

HOME > PHP > PHP Forum > พี่ๆรบกวนช่วยแก้ไขโค้ดให้หน่อยค่ะ คือหนูจะกำหนดสิทธิ์การใช้งานในหน้าเพจ



 

พี่ๆรบกวนช่วยแก้ไขโค้ดให้หน่อยค่ะ คือหนูจะกำหนดสิทธิ์การใช้งานในหน้าเพจ

 



Topic : 131225



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



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




พี่คะถ้าหนูจะให้ level 1,2 ใช้งานหน้านี้ได้ แต่ว่า level 4,5,6 ไม่ให้เข้าถึงต้องเขียนโค้ดอย่างไรคะ

Code (PHP)
<?php
	session_start();
	if($_SESSION['m_id'] == "")
	{
		echo "กรุณาลงชื่อเข้าใช้งานก่อน!";
		exit();
	}

	if($_SESSION['m_level'] != "1")
	{
		echo "คุณไม่มีสิทธิ์ใช้งานหน้านี้!";
		exit();
	}	
	
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
?>




Tag : PHP, MySQL, HTML









ประวัติการแก้ไข
2018-06-08 09:30:46
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-06-08 09:29:04 By : panthipa View : 432 Reply : 11
 

 

No. 1

Guest


Code (PHP)
<?php
	session_start();
	if($_SESSION['m_id'] == "")
	{
		echo "กรุณาลงชื่อเข้าใช้งานก่อน!";
		exit();
	}

	if($_SESSION['m_level'] != "1")
	{
		echo "คุณไม่มีสิทธิ์ใช้งานหน้านี้!";
		exit();
	}	
	
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
?>


เป็น

Code (PHP)
<?php
	session_start();
	if( !in_array($_SESSION['m_id'], [1,2]) )
	{
		echo "คุณไม่มีสิทธิ์ใช้งานหน้านี้! หรือ กรุณาลงชื่อเข้าใช้งานก่อน!";
		exit();
	}

		
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
?>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-08 09:36:05 By : 55555
 


 

No. 2



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



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


error คะพี่

Warning: in_array() [function.in-array]: Wrong datatype for second argument in F:\AppServ\www\app\page1.php on line 3
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-08 10:51:02 By : panthipa
 

 

No. 3



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



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


แก้ไขจาก คห. ด้านบนนะครับ
Code (PHP)
<?php
	session_start();
	if( !in_array($_SESSION['m_id'], array('1','2')) )
	{
		echo "คุณไม่มีสิทธิ์ใช้งานหน้านี้! หรือ กรุณาลงชื่อเข้าใช้งานก่อน!";
		exit();
	}

		
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-08 10:53:48 By : arm8957
 


 

No. 4

Guest


ผมคิดว่าน้องเขาใช้ session $_SESSION['m_level'] ในการเช็คหน่ะครับ
แต่ว่า
$_SESSION['m_id'] อาจจะเช็ค ก่อนว่า login หรือเปล่า พอไปเช็ค in_array เลยอาจจะเป็นค่า ว่างได้

Code (PHP)
	session_start();
	if($_SESSION['m_id'] == "")
	{
		echo "กรุณาลงชื่อเข้าใช้งานก่อน!";
		exit();
	}

        if( !in_array($_SESSION['m_level'], [1,2]) )
	{
		echo "คุณไม่มีสิทธิ์ใช้งานหน้านี้! หรือ กรุณาลงชื่อเข้าใช้งานก่อน!";
		exit();
	}
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);


ปล. ก๊อบมาแปะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-08 12:47:04 By : DK
 


 

No. 5



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



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

ผมว่ากรณีที่เขาไม่มีสิทธิในการใช้งานหน้านี้
ผมว่าไม่ต้องแจ้งก็ได้นะครับ
และก็ไม่ต้องให้เขาเห็นหน้านั้นหรือ link เข้าหน้านั้นเลย
ปล. คหสต.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-08 15:58:01 By : nobetaking
 


 

No. 6



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



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


ขอโทษด้วยค่ะพอดียุ่งๆอยู่ไม่ได้เข้ามาดูยังติดปัญหาอยู่คะพี่ๆ ทุกท่าน คือว่า admin สามารถเข้าได้ปกติแต่ user level 1,2,3,4 error ยุคะ
รบกวนช่วยตรวจสอบให้หน่อยค่ะ
ฐานข้อมูลค่ะ
Code (SQL)
CREATE TABLE `tb_member` (
  `m_id` mediumint(9) NOT NULL auto_increment,
  `m_username` varchar(50) NOT NULL,
  `m_password` varchar(50) NOT NULL,
  `m_name` varchar(50) NOT NULL,
  `m_department` varchar(50) NOT NULL,
  `m_level` int(1) NOT NULL,
  `datesave` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`m_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;

-- 
-- dump ตาราง `tb_member`
-- 

INSERT INTO `tb_member` VALUES (1, 'admin', '1234', 'ผู้ดูแลระบบ', 'IT', 1, '2018-06-09 16:58:40');
INSERT INTO `tb_member` VALUES (2, 'aaaaa', '2222', 'สมหมาย', 'IT', 2, '2018-06-09 16:58:40');
INSERT INTO `tb_member` VALUES (3, 'bbbbb', '3333', 'สมควร', 'IT', 3, '2018-06-09 16:58:40');
INSERT INTO `tb_member` VALUES (4, 'ccccc', '4444', 'สมหญิง', 'IT', 4, '2018-06-09 16:58:40');


login.php
Code (PHP)
<!DOCTYPE html>
<!-- saved from url=(0040)http://getbootstrap.com/examples/signin/ -->
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="http://getbootstrap.com/favicon.ico">

    <title>Signin Form</title>

    <!-- Bootstrap core CSS -->
    <link href="SIGNIN/USERLOGIN/bootstrap.min.css" rel="stylesheet">

    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <link href="SIGNIN/USERLOGIN/ie10-viewport-bug-workaround.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="SIGNIN/USERLOGIN/signin.css" rel="stylesheet">

    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src="SIGNIN/USERLOGIN/ie-emulation-modes-warning.js.ดาวน์โหลด"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <link rel="stylesheet"
          href="https://fonts.googleapis.com/css?family=Sriracha"><!-- Tangerine-->
   
    <style>
      body {
        font-family: 'Sriracha', serif;   
        }
	  h1 {
	  font-size: 60px;
		text-shadow: 3px 3px 3px #aaa;
		}
	  h2 {
	  font-size: 50px;
		text-shadow: 3px 3px 3px #aaa;
		}
	  h3 {
	  font-size: 40px;
		text-shadow: 2px 2px 2px #aaa;
		}
	  h4 {
	  font-size: 30px;
		text-shadow: 2px 2px 2px #aaa;
		}
      h5 {
	  font-size: 20px;
		text-shadow: 2px 2px 2px #aaa;
		}		
    </style>
    
    
  </head>

  <body>

    <div class="container">

    <form ACTION="check_login.php" METHOD="POST" class="form-signin" id="login_admin">
        <h3 class="form-signin-heading">ลงชื่อเข้าใช้งาน</h3>
        <label for="inputUsername" class="sr-only">USERNAME</label>
        <input type="text" id="m_username" name="m_username" class="form-control" placeholder="ชื่อผู้ใช้งาน" required autofocus>
        <br/>
        <label for="inputPassword" class="sr-only">PASSWORD</label>
        <input type="password" id="m_password" name="m_password" class="form-control" placeholder="รหัสผ่าน" required>
       <!-- <div class="checkbox">
          <label>
            <input type="checkbox" value="remember-me"> REMEMBER ME
          </label>
        </div>  -->
		<br/>
        <button class="btn btn-lg btn-primary btn-block" type="submit"> เข้าสู่ระบบ</button>
    </form>

    </div> <!-- /container -->


    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="USERLOGIN/ie10-viewport-bug-workaround.js.ดาวน์โหลด"></script>

</body>
</html>



check_login.php
Code (PHP)
<?php
	session_start();
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	$strSQL = "SELECT * FROM tb_member WHERE m_username = '".mysql_real_escape_string($_POST['m_username'])."' 
	and m_password = '".mysql_real_escape_string($_POST['m_password'])."'";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	if(!$objResult)
	{
			echo "Username and Password Incorrect!";
	}
	else
	{
			$_SESSION["m_id"] = $objResult["m_id"];
			$_SESSION["m_level"] = $objResult["m_level"];

			session_write_close();
			
			if($objResult["m_level"] == "1")
			{
				header("location:news\admin_board.php");
			}
			else
			{
				header("location:news\board.php");
			}
	}
	mysql_close();
?>


admin_board.php
Code (PHP)
<?php
	session_start();
	if($_SESSION['m_id'] == "")
	{
		echo "Please Login!";
		exit();
	}

	if($_SESSION['m_level'] != "1")
	{
		echo "This page for Admin only!";
		exit();
	}	
	
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult10 = mysql_fetch_array($objQuery);
?>
<h1> ADMIN PAGE </H1>


board.php
Code (PHP)
<?php
	session_start();
	if( !in_array($_SESSION['m_id'], array('2','3','4')) )
	{
		echo "Check your name and password.!!!";
		exit();
	}

		
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult10 = mysql_fetch_array($objQuery);
?>
<h1> USER PAGE </h1>



ประวัติการแก้ไข
2018-06-09 19:35:33
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-09 17:50:34 By : panthipa
 


 

No. 7



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



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


เขียนอีกไฟล์แยกไว้ หรือ เขียนเป็น function ไว้

ไฟล์แยก

check_admin.php
Code (PHP)
<?php
        if( $_SESSION['m_level'] != "1" )
	{
		echo "This page for Admin only!";
		exit();
	}
?>



check_memer.php
Code (PHP)
<?php
        if( !in_array($_SESSION['m_level'], array('2','3','4')) )
	{
		echo "Check your name and password.!!!";
		exit();
	}
?>


แล้วเอาไปใช้

admin_board.php
Code (PHP)
<?php
	session_start();
	include('check_admin.php');	
	
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult10 = mysql_fetch_array($objQuery);
?>



board.php
Code (PHP)
<?php
	session_start();
	include('check_member.php');	
		
	mysql_connect("localhost","root","1234");
	mysql_select_db("mydatabase");
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	$strSQL = "SELECT * FROM tb_member WHERE m_id = '".$_SESSION['m_id']."' ";
	$objQuery = mysql_query($strSQL);
	$objResult10 = mysql_fetch_array($objQuery);
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-09 23:34:52 By : randOmizE
 


 

No. 8



โพสกระทู้ ( 8,345 )
บทความ ( 2 )



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


Code (PHP)
<?php
// admin_board.php
session_start();
$test_ip = '127.0.0.1';
if( strlen($_SESSION['m_id'])==0 || $_SESSION['m_level'] != '1' ){ 
   if(filter_input(INPUT_SERVER, 'REMOTE_ADDR')!==$test_ip){
     die("Are your HACKER?");
   }
   die( print_r($_SESSION, true) );
}



Code (PHP)
<?php
// board.php
session_start();
$test_ip = '127.0.0.1';
if( strlen($_SESSION['m_id'])==0 || !in_array($_SESSION['m_level'], array('2','3','4')) ){
   if(filter_input(INPUT_SERVER, 'REMOTE_ADDR')!==$test_ip){
     die("Are your HACKER?");
   }
   die( print_r($_SESSION, true) );
}

สิ่งสำคัญคือให้มันแสดง error และข้อมูลดิบ มาตรวจสอบให้ได้ โค๊ดไม่ได้มีอะไรยาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-10 12:34:37 By : Chaidhanan
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : arm8957 เมื่อวันที่ 2018-06-08 10:53:48
รายละเอียดของการตอบ ::
โค้ดนี้เราลองดูก็ทำงานได้ปกตินะกำหนดสิทธิ์เพิ่มได้


ตอบความคิดเห็นที่ : 7 เขียนโดย : randOmizE เมื่อวันที่ 2018-06-09 23:34:52
รายละเอียดของการตอบ ::
หรือจะเอาแบบนี้ก็ได้ ต้องเรียกใช้ทำงานได้ดีทีเดียวอันนี้ก็กำหนดสิทธิ์เพิ่มได้นะ ลองดู

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-10 15:48:20 By : HLEW
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : HLEW เมื่อวันที่ 2018-06-10 15:48:20
รายละเอียดของการตอบ ::
โค้ดส่วนนี้ใช้งานได้คะ 4 user ข้างบนจะสลับเปลี่ยนเลเวลใน 4 เลเวลยังก็เข้าใช้งานได้แต่พอแอด user เพิ่มเข้าไปจะเข้าไม่ได้ในส่วนของ เลเวล 2 3 4 แต่พอเปลี่ยนเป็นเลเวล 1 เข้าได้ก็เลยงงๆยุคะถึงลบ user ออกหมดแล้วแอดใหม่ก็ใช้ได้เฉพาะ 4 user แรกเท่านั้นที่ทำงาน
โค้ดก็เท่าที่เห็น ไม่มีอะไรมากลองเปลี่ยนเครื่องก็เป็น เดี๋ยวหนูจะลองเขียนแยกดู ว่าได้ไหม
ตอบความคิดเห็นที่ : 7 เขียนโดย : randOmizE เมื่อวันที่ 2018-06-09 23:34:52
รายละเอียดของการตอบ ::




ประวัติการแก้ไข
2018-06-11 08:18:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-11 08:16:58 By : panthipa
 


 

No. 11



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



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


อัพเดทล่าสุดหนูลองเขียนแยก แอด user เพิ่มตอนนี้ทำงานได้ ทุกเลเวลแล้วคะ
คือที่จริงหนูจะใช้แค่ admin กับ user เท่านั้น ส่วน 3,4 หนูคิดเผื่อต้องเพิ่มในส่วนอื่นๆอีกคะขอขอบคุณพี่ๆทุกท่านจริงๆคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-11 09:13:32 By : panthipa
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : พี่ๆรบกวนช่วยแก้ไขโค้ดให้หน่อยค่ะ คือหนูจะกำหนดสิทธิ์การใช้งานในหน้าเพจ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม , รับทำบัญชี , โรงงานผลิตครีม , สำนักงานบัญชี , รับจดทะเบียนบริษัท

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