ช่วยที login แบ่งสิทธ์ผู้ใช้อ่ะ ช่วยทีนะคะ ในหน้าloginอ่ะค่ะ พอใส่ username ก่ะ password ที่เป็นของ user มันจะเข้าไปที่หน้า
ช่วยทีนะคะ ในหน้าloginอ่ะค่ะ พอใส่ username ก่ะ password ที่เป็นของuser มันจะเข้าไปที่หน้า insert_user.php เลย แต่ถ้าใส่ username ก่ะ password ที่เป็นของadmin จะไปที่หน้า insert.ph
นี่คือโค้ดหน้า login นะคะ
<?php require_once('../Connections/db_register.php'); ?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['psw'];
$MM_fldUserAuthorization = "username";
$MM_redirectLoginSuccess = "insert_user.php";
$MM_redirectLoginFailed = "loginfailed.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_db_register, $db_register);
$LoginRS__query=sprintf("SELECT username, password, username, Type FROM members WHERE username='%s' AND password='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
$LoginRS = mysql_query($LoginRS__query, $db_register) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'username');
$loginStrType = mysql_result($LoginRS,0,'type');
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
$_SESSION['MM_UserType'] = $loginStrType;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
แล้วที่หน้าที่จะเช็คว่า user ให้ไปหน้าไหน admin ให้ไปหน้าไหน ต้องทำไงอ่ะคะTag : - - - -
Date :
19 ก.ย. 2550 09:36:27
By :
งงมากเลย
View :
2851
Reply :
23
ช่วยทีนะคะ มันเป็นโปรเจคอ่า ขอบคุณล่วงหน้าเลย
Date :
19 ก.ย. 2550 09:39:31
By :
งงมาก
ทำไมไม่แยกหน้า
front page : user login ,
backend : admin login อ่ะ
เราว่าง่ายกว่าเยอะ
(มือใหม่หัดทำเหมือนกัน)
Date :
19 ก.ย. 2550 09:44:05
By :
sakuna
ถ้าแยกแล้วต้องไปเขียนโค้ดยังไงอ่ะคะ เพิ่งหัดอ่ะช่วยอีกทีนะคะ
Date :
19 ก.ย. 2550 09:47:31
By :
งงมาก
if($user=="admin"){
echo "จะให้ทำอะไรหล่ะ";
}else{
echo "จะให้ทำอะไรกับ user ";
}
จริงๆกำหนด lv ของ user ก็ได้ เก็บ user กับ admin ไว้ที่ table เดียวกัน สร้างฟิว กำหนด อย่าง useradmin = lv 1 user= lv 2
พอเข้าหน้า ลอกอินก็ใช้หน้าเดียวกัน แต่หน้าที่จะส่งต่อ ก็ if else ว่า
if($lv==1){
echo"ส่งไปหน้า admin";
}else{
echo"ส่งไปหน้า user";
}
ง่ายๆ
https://www.thaicreate.com/community/php-mysql-login-form-check-username-password.html
Date :
19 ก.ย. 2550 10:05:27
By :
xboy
echo "ส่งไปหน้า admin"; โค้ดในนี้เขียนไงอ่ะ เพิ่งจะลองเริ่มเขียนเหมือนกันเลยอยากรู้ด้วย สมมติส่งไปหน้า admin.php
Date :
19 ก.ย. 2550 10:12:57
By :
อบากรู้บ้าง
แยกหน้าเลยครับ
1. สร้าง fild ขึ้นมา 1 fild แล้วเก็บค่าที่เป็นตัวเลข
2. ทำ page เพิ่มอีกแบ่งตาม ระดับ เลย พอ มัน check เสร็จแล้วก็ให้มัน ส่งไปตาม link ที่แบ่งตามระดับเลย
เอาแบบง่ายๆเลยน่ะครับ ผมว่าผมพยายามเขียนให้เข้าใจง่ายที่สุดแล้ว
<?
$user_name=$_POST[user_name];
$pass=$_POST[pass];
if ($user_name=="" or $pass=="")
{
echo "กรุณากรอก Username และ Password ด้วย!!";
echo "<meta http-equiv=\"refresh\" content=\"3;URL=javascript:history.back()\">";
exit();
}
include "connect.php";
$sql="select * from member where user='$user_name' and pass='$pass' ";
$result=mysql_db_query($dbname,$sql)or die ("ตรวจสอบคำสั่ง $sql");
$num=mysql_num_rows($result);
if($num<=0)
{
echo "ไม่พบ Username และ Password ในระบบสมาชิก !!";
echo "<meta http-equiv=\"refresh\" content=\"3;URL=javascript:history.back()\">";
exit();
}
else
{
session_start();
$_SESSION[sess_id]=session_id();
$_SESSION[sess_username]=$user_name;
$_SESSION[sess_level]=$rs[level];
switch($_SESSION[sess_level])
{
case "0":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=ระดับที่1.php\">";
break;
case "1":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=ระดับที่2.php\">";
break;
case "2":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=ระดับที่3.php\">";
break;
case "3":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=ระดับที่4.php\">";
break;
case "4":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=ระดับที่5.php\">";
break;
}
unset($rs);
mysql_free_result($result);
mysql_close();
}
?>
ไม่เข้าใจก็ถามไว้เดี๋ยวเข้ามาดูหั้ยครับ
Date :
19 ก.ย. 2550 10:14:29
By :
Testing
ก่อ where ด้วย id ถ้าจะให้ใครมีสิทธิ์เข้าหน้าก่อเอา id ไปใส่ใส่ใน ตาราง แล้ว where ด้วย id ของคนนั้น เช่น
idmember,idadmin,idsupperadmin,เก็บ id ของแต่ละแล้ว where ตาม id นั้นๆๆ สู้ๆๆๆๆๆ
Date :
19 ก.ย. 2550 10:16:07
By :
ตร๊อก....
ขอบคุณมากๆค่ะ ขอลองทำดูก่อนนะคะ แล้วถ้าติดจะมาถามไว้อีก อย่าเพิ่งรำคาญนะคะ
Date :
19 ก.ย. 2550 10:20:36
By :
งงมากเลย
echo "<meta http-equiv=\"refresh\" content=\"3;URL=ระดับที่1.php\">";
คำสั่งนี้หมายความว่าไงหรอ รู้แค่ว่าให้ไปที่หน้า ระดับที่1.php
Date :
19 ก.ย. 2550 10:34:13
By :
อิอิ
ลองเอาไปแก้แล้วแต่มันขึ้นให้ใส่username ก่ะ password ตลอดเลย ทั้งๆที่ใส่ไปแล้วอ่ะ
นี่โค้ดที่แก้อ่ะ
<?
$user_name=$_POST[username];
$pass=$_POST[psw];
if ($user_name=="" or $pass=="")
{
echo "กรุณากรอก Username และ Password ด้วย!!";
echo "<meta http-equiv=\"refresh\" content=\"3;URL=javascript:history.back()\">";
exit();
}
include "login.php";
$sql="select * from type where members='$user_name' and pass='$pass' ";
$result=mysql_db_query($db_register,$sql)or die ("ตรวจสอบคำสั่ง $sql");
$num=mysql_num_rows($result);
if($num<=0)
{
echo "ไม่พบ Username และ Password ในระบบสมาชิก !!";
echo "<meta http-equiv=\"refresh\" content=\"3;URL=javascript:history.back()\">";
exit();
}
else
{
session_start();
$_SESSION[sess_password]=session_password();
$_SESSION[sess_username]=$user_name;
$_SESSION[sess_type]=$rs[type];
switch($_SESSION[sess_type])
{
case "1":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=insert.php\">";
break;
case "admin":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=insert_user.php\">";
break;
}
unset($rs);
mysql_free_result($result);
mysql_close();
}
?>
Date :
19 ก.ย. 2550 10:53:24
By :
งงมาก
1. คุณลอง check ดูว่า ชื่อ textFild ที่ Form ส่งค่า ถูกมั้ย ??
2. ถ้ามั่นใจว่าถูกแล้ว แต่ ไม่ได้ ให้ลอง เอาท่อน ที่ check ค่าว่างออกก่อน แล้วลอง echo ค่าออกมาดูว่า ค่าจาก textFild มาหรือไม่?
3. ถ้าไม่ได้ โพส Code Form และ Code รับค่าของคุณมา ทั้งหมด ผมจะดูให้
Date :
19 ก.ย. 2550 11:18:49
By :
Testing
ลองแก้ตรง if ฮับ
if (($user_name=="") or ($pass==""))
น่าจะได้นะ
Date :
19 ก.ย. 2550 11:21:52
By :
adminบ้านนอก
{
case "1":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=insert.php\">";
break;
case "admin":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=insert_user.php\">";
break;
}
************************************************
ส่วนอันนี้ผมว่าก็ผิดน่ะ
ทำไมไม่ใช้ ตัวเลขแทนล่ะครับ
เช่น User ธรรมดา =1
Admin = 2 มันจะง่ายกว่ามั้ย
แล้วดูฐานข้อมูลด้วย ว่า ควรใช้ data type อ่ะไร??
Date :
19 ก.ย. 2550 11:25:21
By :
Testing
แหะๆแก้หมดแล้วยังเหมือนเดิมอยู่เลยอ่ะ ลองดูโค้ดนะ
<?
$user_name=$_POST[username];
$pass=$_POST[psw];
if (($user_name=="" or $pass==""))
{
echo "กรุณากรอก Username และ Password ด้วย!!";
echo "<meta http-equiv=\"refresh\" content=\"3;URL=javascript:history.back()\">";
exit();
}
include "login.php";
$sql="select * from members where username='$username' and password='$password' ";
$result=mysql_db_query($db_register,$sql)or die ("ตรวจสอบคำสั่ง $sql");
$num=mysql_num_rows($result);
if($num<=0)
{
echo "ไม่พบ Username และ Password ในระบบสมาชิก !!";
echo "<meta http-equiv=\"refresh\" content=\"3;URL=javascript:history.back()\">";
exit();
}
else
{
session_start();
$_SESSION[sess_password]=session_password();
$_SESSION[sess_username]=$user_name;
$_SESSION[sess_type]=$rs[type];
switch($_SESSION[sess_type])
{
case "1":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=insert.php\">";
break;
case "2":
echo "<meta http-equiv=\"refresh\" content=\"3;URL=insert_user.php\">";
break;
}
unset($rs);
mysql_free_result($result);
mysql_close();
}
?>
แล้วแบบว่าคือที่ฐานข้อมูล ในตารางmembers จะเก็บ username,password,type(รหัสประเภทของผู้ใช้) โดย ตารางจะสัมพันกับตารางlevel ซึ่งจะเก็บ level,name โดย type=level งงป่ะ คือช่วยดูให้ทีนะคะว่ามันผิดตรงไหนอ่ะ คือแบบว่าไม่เคยเรียนphpเลย ลองเขียนเองอ่ะ
Date :
19 ก.ย. 2550 11:36:50
By :
งงมาก
เดี๋ยว 17.00 หรือ 20.00 น. จะมาตอบครับ เอางานไปส่งก่อน
Date :
19 ก.ย. 2550 12:49:13
By :
Testing
ค่า....ไงก้อขอบคุณก่อนล่วงหน้าเลยแล้วกัน
Date :
19 ก.ย. 2550 13:15:57
By :
งงมาก
เอางี้สิครับ ในตาราง member แทนที่จะอ้างรหัสประเภของผู้ใช้จากอีกตาราง ทำไมไม่ย้ายมาเก็บไว้ที่เดียวเลยอ่ะคับ
ถามว่า? จะแยกเก็บทำไม? ไม่ซ้ำซ้อนกันหรือ?
อย่างเช่น ตาราง member
จะมี Fild
id int auto_increment <--------เก็บรหัสสมาชิก
name varchar <----เก็บชื่อ
user varchar <--------เก็บชื่อเข้าใช้ระบบ
pass varchar <---------เก็บรหัสผ่าน
level char <---------- เก็บระดับการใช้งาน
แล้วเวลา select ก็ select * มาเลย หรือจะใช้ Array ดึงข้อมูลออกมาก่อนก็ได้ แล้วค่อยเอามาเปรียบเทียบค่าโดยใช้ switch แบบที่ผมแนะนำอ่ะ
Date :
19 ก.ย. 2550 18:59:52
By :
Testing
อลงรวมตารางแล้ว แล้วพอลองเอาตัวเช็คออกมันขึ้นว่า
ตรวจสอบคำสั่ง SELECT * FROM members WHERE username='' and password=''
หมายความว่าไงอ่ะ
Date :
20 ก.ย. 2550 08:45:13
By :
งงมาก
คุณ ดู format ของ คำสั่ง sql ดูสิว่ามันดูมั้ย ???
1. ชื่อตาราง
2. ค่าตัวแปลต่างๆ
Date :
20 ก.ย. 2550 10:44:17
By :
Testing
ได้แล้วล่ะค่ะ กว่าจะได้ทำเอาคุณ Testing เหนื่อยไปด้วยเลย ยังไงด้อขอบคุณมากๆนะคะ
Date :
20 ก.ย. 2550 13:57:43
By :
ไม่งงและ
ขอดูโค้ดที่ได้ได้ป่าว
เราก็ศึกษาอยู่เหมือนกัน
[ขอบคุง]
Date :
27 ธ.ค. 2550 09:08:19
By :
ooo
ขอถามผู้รู้หน่อยอะครับ
เราสามารถเขียนโค้ดhtmlที่เป็นหน้าloginไว้ที่เพจหนึง
แล้วขียนโค้ดphpไว้อีกที่เพจหนึ่งเนี่ย
จะได้ป่าวอะครับหรือต้องไว้ที่หน้าhtmlเดียวกันอะครับ
ช่วยตบหน่อยนะครับ
[email protected]
ขอบคุณล่วงหน้าครับ
Date :
16 พ.ย. 2551 23:11:11
By :
kasuemakung
Code (PHP)
<?
session_start();
mysql_connect("localhost","root","root");
mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM member WHERE Username = '".trim($_POST['txtUsername'])."'
and Password = '".trim($_POST['txtPassword'])."'";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
if(!$objResult)
{
echo "Username and Password Incorrect!";
}
else
{
$_SESSION["UserID"] = $objResult["UserID"];
$_SESSION["Status"] = $objResult["Status"];
session_write_close();
if($objResult["Status"] == "ADMIN")
{
header("location:admin_page.php");
}
else
{
header("location:user_page.php");
}
}
mysql_close();
?>
Date :
2011-06-10 22:34:46
By :
webmaster
Load balance : Server 04