|
|
|
พี่ๆรบกวนช่วยแก้ไขโค้ดให้หน่อยค่ะ คือหนูจะกำหนดสิทธิ์การใช้งานในหน้าเพจ |
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ไขจาก คห. ด้านบนนะครับ
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมคิดว่าน้องเขาใช้ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมว่ากรณีที่เขาไม่มีสิทธิในการใช้งานหน้านี้
ผมว่าไม่ต้องแจ้งก็ได้นะครับ
และก็ไม่ต้องให้เขาเห็นหน้านั้นหรือ link เข้าหน้านั้นเลย
ปล. คหสต.
|
|
|
|
|
Date :
2018-06-08 15:58:01 |
By :
nobetaking |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษด้วยค่ะพอดียุ่งๆอยู่ไม่ได้เข้ามาดูยังติดปัญหาอยู่คะพี่ๆ ทุกท่าน คือว่า 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เขียนอีกไฟล์แยกไว้ หรือ เขียนเป็น 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อัพเดทล่าสุดหนูลองเขียนแยก แอด user เพิ่มตอนนี้ทำงานได้ ทุกเลเวลแล้วคะ
คือที่จริงหนูจะใช้แค่ admin กับ user เท่านั้น ส่วน 3,4 หนูคิดเผื่อต้องเพิ่มในส่วนอื่นๆอีกคะขอขอบคุณพี่ๆทุกท่านจริงๆคะ
|
|
|
|
|
Date :
2018-06-11 09:13:32 |
By :
panthipa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|