10/10/2018, 11:39
[tutor] tạo trang đăng nhập phân quyền
giả sử bạn có một bảng member có các trường sau
- member_id
- member_user
- member_pass
- member_lever
dùng để chứa thông tin về thành viên
lever của admin là ROOT
cách tạo file để connect đến database em đã hướng dẫn rồi mong các bác tìm các bài trước
bước 1: tạo form để user đăng nhập login.html
buoc 2: Login.php
Bây giờ tui có 2 file một dành cho admin còn một dành cho member
admin.php (danh cho admin)
member.php (danh cho member)
- member_id
- member_user
- member_pass
- member_lever
dùng để chứa thông tin về thành viên
lever của admin là ROOT
cách tạo file để connect đến database em đã hướng dẫn rồi mong các bác tìm các bài trước
bước 1: tạo form để user đăng nhập login.html
Code:
<form method=post action="login.php"> user: <input type=text name=member_user size=30> <br> pass: <input type=password name=member_pass size=30> <br> <input type=submit value="Login"> </form>
Code:
<?php session_start(); include("file de connect database"); $result_check = mysql_query("select * from member where member_user='$member_user' AND member_pass='$member_pass'"); $result_check = mysql_num_rows($result_check); if($result_check){ $loged = $member_user session_register("loged"); echo("ban da dang nhap thanh cong"); } else { echo("Xin loi de nghi ban kiem tra lai user va pass"); } ?>
admin.php (danh cho admin)
Code:
<?php session_start(); include("file de connect database"); if(session_is_registered("loged")){ $check_lever = mysql_query("select * from member where member_user='$loged' AND member_lever='root'"); $check_lever = mysql_num_rows($check_lever); if($check_lever){ // neu user co lever la root echo("xin chao admin"); } else { echo("Ban khong phai la admin"); } } else { include("login.html"); } ?>
Code:
<?php session_start(); include("file de connect"); if(session_is_registered("loged")){ echo ("xin chao member"); } else { include("login.html"); } ?>
Bài liên quan
cái forum của bác lại liền với music box hả, em thích nó là một forum riêng cơ
Em ko muốn làm forum riêng vì tớ làm web cá nhân mà
À bác antiflood như thế nào , có thể share cho tớ cách làm được ko , tớ đã có chống flood , mà ko biết có hiệu quả hay ko , có gì bác thử flood phát xem sao
Vậy mình gán session cho trang admin.php như thể nào ? Mình ví dụ như sau
Mình làm một trang admin.php quản lý toàn bộ thông tin trong database của một trang web, Mình muốn khi gọi trang admin.php thì gọi trang kiếm tra login.html có form
username =
password =
Nếu kiểm tra dữ liệu đúng thì cho hiển thị thông tin trên trang admin.
còn sai thì quay lại login.html.
Các Bác xem giúp cái file của mình.
File login.html:
<form method=post action="login.php">
user: <input type=text name=username size=30>
<br>
pass: <input type=password name=password size=30>
<br>
<input type=submit value="Login">
</form>
<?php
session_start();
include("common.php");
$result_check = mysql_query("select * from user where username='$username' and password='$password'");
$result_check = mysql_num_rows($result_check);
if($result_check){
$loged = $username
session_register("loged");
echo("ban da dang nhap thanh cong");
}
else
{
echo("Xin loi de nghi ban kiem tra lai user va pass");
}
?>
<body leftmargin="0" topmargin="0" bgcolor="#CCCCCC">
<?php
session_start();
include("common.php");
redirect("login.html");
if(session_is_registered("loged")){
$check_lever = mysql_query("select * from user where username='$loged' AND username_lever='root'");
$check_lever = mysql_num_rows($check_lever);
if($check_lever){ // neu user co lever la root
echo("xin chao admin");
}
else
{
echo("Ban khong phai la admin");
}
}
else
{
include("login.html");
}
?>
<left>
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="700" valign="top" align="left"><table width="797" height="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="130" height="700" bgColor="#444444" valign="top" align="center">
<? include"menu_left_ad.php";?>
<br>
</td><td width="10"> </td>
<td width="660" valign="top" align="center">
<?
switch($_GET***91;'show'***93;)
{
case shownews010:
include ("edit_news.php");
break;
case edit0101:
include ("delete_news.php");
break;
default:
include ("show_news.php");
break;
}
?>
</td>
</tr>
</table></td>
</tr>
</table>
<table width="800" border="0" cellspacing="0" cellpadding="0"> ';
</td>
</tr>
<tr><td bgcolor="#006699" height="1"></td></tr>
</table>
</left>
</body>
tablename: user có 4 fields ->
(user_id(int3), username(varchar), password(varchar), active(tinyint))
Các bác xem giùm mấy file nó bị sai chỗ nào ?
To: binhvn
Bác cho hỏi trong file admin.php bác khai báo 'member_lever='root''.
Mình muốn hỏi bác member_lever ở đây là tên field của database hay là gì ?
Cảm ơn các bác nhiều.
nếu member_lever="root" => admin
còn cái vụ trang trắng thì bạn có thể up cái code của bạn lên đây được không
cho mình hỏi
redirect("login.htm");
là gì thế
Bác lkn file common.php thông thường đặt tên là fiel config.php, nhưng mình quen đặt tên là common nên cứ dùng tên như thế. Bác nói đúng common.php là khai báo kết nối database.
To: Binhvn
Mình diễn tả tất cả các file của mình như sau:
Mình xây dựng trang admin.php để quản lý toàn bộ dữ liệu trên trang.
Trong file admin.php nó đã có code hiển thị dữ liệu, dữ liệu là các trang được gọi trong Swith () Case.... đó.
Khi URL gõ tên admin.php thì admin -> gọi trang login để kiểm tra user =admin
pass = 123dsf.. Nếu user & pass =true thì cho hiển thị thông tin trên trang admin.php. Mình không biết giải thich thể nào cho rõ hơn, nhưng đại khái như là session cho file admin.php
redirect "login.html" khi URL gõ admin.php thì nó sẽ đi thẳng tới trang login.html cho người quản trị nhập user & pass, login.html -> action gọi login.php để check user & pass, nếu đúng thì quay lại hiển thị dữ liệu trên trang admin.php.
<?php session_start(); ?>
<body leftmargin="0" topmargin="0" bgcolor="#CCCCCC">
<?php
include("common.php");
if(session_is_registered("loged")){
$check_lever = mysql_query("select * from user where username='$loged' AND username_lever='root'");
$check_lever = mysql_num_rows($check_lever);
if($check_lever)
{ // neu user co lever la root
?>
<left>
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="700" valign="top" align="left"><table width="797" height="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="130" height="700" bgColor="#444444" valign="top" align="center">
<? include"menu_left_ad.php";?>
<br>
</td><td width="10"> </td>
<td width="660" valign="top" align="center">
<?
switch($_GET***91;'show'***93;)
{
case shownews010:
include ("edit_news.php");
break;
case edit0101:
include ("delete_news.php");
break;
default:
include ("show_news.php");
break;
}
?>
</td>
</tr>
</table></td>
</tr>
</table>
<table width="800" border="0" cellspacing="0" cellpadding="0"> ';
</td>
</tr>
<tr><td bgcolor="#006699" height="1"></td></tr>
</table>
</left>
</body>
<?php
}
else
{
echo("Ban khong phai la admin");
}
}
else
{
include("login.html");
}
?>
source file admin.php của Bác thì đúng là như thế, nhưng mình không hiểu sao file login.html gọi action tới file login.php nó cứ đứng trơ trơ ra ah, chẳng thông báo gì hết ?
Bác có thể xem lại giúp mình cái file login.php không ? hay do mình test trên localhost máy cá nhân nên nó không chạy ?
Thanks Bác nhiều !