Các bản tin khác
- Bài 11: Viết ứng dụng đăng nhập bằng PHP và MYSQL
- Bài 10: Kết hợp PHP và MYSQL trong ứng dụng website
- Bài 9: Cơ bản về ngôn ngữ SQL và Mysql
- Bài 8: Khái niệm về hàm và gọi lại hàm trong PHP
- Bài 7: Khái niệm cơ bản về Cookie và session trong PHP
- Bài 6: Tổng quan về mảng và các hàm hỗ trợ trong PHP
- Bài 5: Tìm hiểu quy trình làm việc trên file trong PHP
- Bài 4: Xử lý giá trị form trong PHP
- Bài 3: Toán tử và biểu thức trong PHP
- Bài 2: Kiến thức tổng quan về lập trình PHP
Lập Trình PHP Căn Bản
Bài 12: Viết ứng dụng thêm thành viên bằng PHP và MYSQL
Ở bài trước, chúng ta đã xây dựng ứng dụng thành viên. Cho phép người sử dụng thực thi công việc đăng nhập vào hệ thống. Trong bài này chúng ta sẽ tiếp tục công việc phát triển ứng dụng trên, để người sử dụng sau khi đăng nhập có những thao tác đặc quyền như thêm, quản lý, sửa, xoá thành viên của trang web. (xem lại Bài 11: Viết ứng dụng đăng nhập bằng PHP & MYSQL).
Sau khi đăng nhập vào trang admin người dùng sẽ được đẩy sang trang quản lý admin, tại đây chỉ những ai đã đăng nhập đúng với username và password trong cơ sở dữ liệu và có quyền hạn level là 2 thì mới có thể truy xuất vào trang này. Vì vậy chúng ta cần thao tác kiểm tra session để quản lý phiên làm việc của người sử dụng. Đặt đoạn code sau ở những trang bạn muốn kiểm tra quyền truy cập của người sử dụng.
Như vậy tại trang add_user.php chúng ta cũng đặt đoạn code trên và viết thêm 1 form thực thi công việc thêm thành viên.

Tương tự như những bài trước, chúng ta cũng lần lượt kiểm tra từng đối tượng. Trước hết cần xem thử người dùng đã nhấn nút Add New user chưa, sau đó lại kiểm tra xem người dùng đã nhập đầy đủ thông tin chưa. Cuối cùng là so sánh giữa password và re-password có giống nhau hay không. Tiếp theo chúng ta gán biến $l sẽ bằng với giá trị mà khi người dụng chọn level cho user đó. (xem lại Bài 4: Xử lý giá trị form trong PHP)
Kế đến chúng ta lại tiếp tục kiểm tra xem có tồn tại biến $u, $p và $l hay không (chỉ khi người dùng nhập liệu thì mới tồn tại cùng lúc 3 biến này). sau khi đã kiểm tra sự tồn tại của 3 biến này chúng ta tiếp tục dùng PHP kết nối cơ sở dữ liệu để kiểm tra xem username mà người dùng vừa chọn có trùng với username khác trong cơ sở dữ liệu chưa. nếu trùng thì phải xuất thông báo lỗi yêu cầu họ chọn username khác còn nếu không thì ta lại tiến hành thêm thành viên mới này vào CSDL.
Tới đây ta đã kết thúc thao tác thêm một thành viên mới vào cơ sở dữ liệu. Sau đây là toàn bộ code trong ứng dụng này.
Ở bài sau, chúng ta lại tiếp tục tìm hiểu ứng dụng kết hợp PHP và MYSQL cho việc quản lý tất cả thành viên trong database ra như thế nào. Mọi sự góp ý, cũng như thắc mắc của các bạn dành cho bài viết vui lòng sử dụng tính năng thảo luận tại diễn đàn. Hoặc thông qua việc liên hệ của hệ thống website. Mong sẽ nhận được nhiều ý kiến đóng góp từ các bạn.
Trân Trọng
(Bùi Quốc Huy)
48182
PHP Framework những điều nên và không nên
Khái quát về PHP Framework
Học PHP như thế nào khi bạn chưa biết lập trình?
Tự học lập trình PHP dễ hay khó ?
Web 2.0 - Khái niệm và bản chất của chúng như thế nào ?



hoang (10:08 25/04/2010)
đoạn code trên sai ở đâu ấy.ko chạy đượcReply
conan_destr (16:07 10/05/2010)
Đau đầu với đoạn code trên, mình chưa tìm ra lỗi, nhưng mình viết lại thế này thì nó chạy ầm ầm, mỗi tội... ko được pro lắm.<?php
// sesison_start();
// if(isset($_SESSION['userid'])
Reply
conan_destr (16:37 10/05/2010)
ặc, đúng là copy pasteđoạn code trên sai ngay ở dong số 02
sessison chứ không phải sesison.
đề nghị admin sửa lại
Reply
thanh (20:19 01/06/2010)
tại sao từ dòng 51->60 lại chui vào giữa đoạn Php vậy nhỉ?tui đãlàm đoạn code như trên nhưng không thể chạy nổi?
Reply
hienthu (10:05 22/06/2010)
Các bạn chuyển dấu } ở dòng 29 xuống cuối sau dòng"echo "Đã thêm thành viên mới thành công" ;"
là ok. mình đã làm và successfull. Chúc các bạn làm tốt.
Reply
manvanle (10:25 17/07/2010)
ặc mình code đã đời không có lỗi chi hết mỗi tội không chạy được bó tay luôn.mình nhập thông tin vô form rồi mà sao khi submit lại không chuyển ra mấy câu thông báo bác nào pro chỉ giúp mình với hem
thank a lot!
Reply
le phuong (10:43 27/07/2010)
admin cho e hoi trong ứng dụng trên giả sử mình muốn username người nhập vào là tiếng việt nhưng khi lưu xuống csdl thì không đúng như tên nhập vào mặc dù mình đã set encoding cho cả file php và mysql là utf8 rồi admin có thể gợi ý giúp mình với mình đang cần gấp thanksReply
Nguyen Sang (10:19 27/09/2010)
Cho mình hỏi, file nào là login.php, file nào là add_user.php. Mình đã viết tách ra rồi dùng include chạy không được, copy nguyên code ở đây, cũng làm theo bạn nào bên dưới nói chạy vẫn không được, admin có thể viết rõ ràng file nào ra file đấy được không chứ nhìn thế này viết theo rối hết cả lên. Việc add vào cơ sở dữ liệu cũng không được (từ bài 11). Mong admin viết rõ ràng hơn.Reply
d2doi (13:39 13/11/2010)
Trước hết em xin cảm ơn trang Web. Trang Web đã cung cấp cho người học những thông tin bổ và kiến thức bổ ích. Em xin góp ý với anh một điều về trang web. Trong Tab "Các Bản tin khac", anh có thể liệt kê các bài viết theo thứ tự tiến lên được không? Giả sử người đọc đọc từ đầu đi. Kiến thức phải đi lên chứ không đi xuống.Vậy mà em đang đọc bài 11 ức chế thay em chỉ nhìn thấy bài 10 đổ lại. Mà điều em muốn đó là bài 12 hoặc cao hơn. Đó là điều em nhận thấy sự ko hợp lí.Reply
Kenny (10:59 15/11/2010)
@d2doi: Cám ơn bạn đã góp ý. Chúng tôi sẽ chỉnh sửa lại phần thông tin này sớm nhằm giúp các bạn thuận tiện nhất trong việc tham khảo cũng như học tập tại website.Mong nhận được nhiều góp ý hơn từ phía các bạn.
Trân trọng
Reply
VIetHoan (08:21 22/11/2010)
kho chay duoc cung khong bao loiReply
my (15:58 08/01/2011)
ở bài 12 mình viết $sql2="insert into....values('$u','$p','$l')"; sao vẫn thêm được thành viên mới ? Admin hoặc bạn nào giải thích dùm mình được không ? tkuReply
bankimo (22:01 09/01/2011)
xin hỏi là khi người ta đăng ký người ta chọn Admin ko thì sao thì họ quản lý hết àReply
Vũ (10:10 28/01/2011)
@Kendy, Từ phiên bản php 5.3.0 trở lên thì không sài session được nữa. Nên các bạn đem code về chạy hay bị lỗi session.Reply
toan (20:07 09/03/2011)
Sao khi làm form thì mật khẩu khong cần khớp vẫn đăng ký đượcReply
crazy (11:01 21/03/2011)
Ma do chi la php, con php va javacript ket hop thi lam sao admin.em co 2 don code nay va csdl:
<script language="javascript">
function checkuser()
{
str=form.txtusername.value;
var sethoten=document.getElementById("txtusername");
if(str=="")
{
alert("Username khong hop le!");
// document.form.user.focus();
return;
}
sethoten.inner.HTML="";
}
function checkpass()
{
str=form.txtpassword.value;
var setpassword=document.getElementById("txtpassword");
if(str=="")
{
alert("Password khong hop le!");
//document.form.password.focus();
return;
}
setpassword.innerHTML="";
}
</script>
<form name="form" method="post" action="login.php">
<table align="center">
<tr>
<th align="center" colspan="2"><hr>DANG KI THANH VIEN<hr></th>
</tr>
<td class ="tdlable">Hoten</td>
<td width="70%">
<input type="text" name="txtusername" id="txtusername" onblur="checkuser()"/>
</td>
</tr>
<br><br>>
<tr>
<td class="tdlable">Password</td>
<td >
<input type="text" name="txtpassword" id="txtpassword" onblur="checkpass()"/>
</td>
</tr>
<br><br>
<tr>
<td width="30%" align="center" class="tblabel"></td>
<td with="70%">
<input type="button" value="Login" onclick="login.php">
</tr>
</table</form>
</body>
____________________________
php
<?php
$conn=mysql_connect("localhost","root","") or
die("Can't connect this database");
$db=mysql_select_db("login",$conn);
$result=mysql_query("select * from user where username=".$_POST[textusername]." and password='".$_POST[txtpassword]."' ");
if(mysql_num_rows($result) == 0)
echo "Dang nhap that bai";
else
echo "Dang nhap thanh cong";
?>
cosodulieu:
gom username va password chay rieng thi dc con action vao form thi im ru
Reply
Phong (18:27 22/03/2011)
hihi. Có you nào biết viết code sinh mã tự động trong php chỉ mình với. ThanksReply
Dương Thế (16:43 28/04/2011)
Cho mình hỏi chút. Cái header("location: dangki.php"); có ý nghĩa như thế nào vậy?Reply
Triệuhải (12:00 27/05/2011)
Rất cảm ơn tôi đang rất cần kiến thức nàyReply
Martlucky (18:30 30/06/2011)
Mình làm theo hướng dẫn--> đăng kí thành công...nhưng vào database thỳ ko có tài khoản mới nào đc add???Reply
le nguyen quoc vinh (15:34 13/07/2011)
minh lam lai doan code cua bai nhu sau chay duoc ne:<?php
if(isset($_POST['username'])
Reply
nguyễn vĩnh tài (22:55 28/08/2011)
cho mình hỏi sao mình không thấy code vậy các bạn hjx vui lòng chỉ giúp mình với ... thanks mọi người trong diễn đàn nhiều !!!Reply
Trưởng (14:42 19/09/2011)
Code hoàn chỉnh:<?php
session_start();//Khởi động session
//Kiểm tra xem có tồn tại 2 session bên dưới ko
if(isset($_SESSION['userid'])
Reply
Truong Dang Nguyen (06:23 13/10/2011)
Vấn đề ở chỗ chữ level , chữ level ở session khác với level ở Combo select .Thế mà chúng lại giống nhauReply
Kenny (08:46 13/10/2011)
Chào bạn.Level ở session là 1 biến tôi đặt để thao tác kiểm tra người sử dụng hợp lệ. Vì khi bạn đăng nhập, hệ thống đã gán giá trị level của bạn vào session.
Còn trong trang này level ở trong thẻ select dùng để người quản trị lựa chọn khi họ thêm 1 thành viên mới. Vì khi lưu vào CSDL thì chúng ta chỉ có thể lưu là 1 hoặc 2 ứng với member hoặc admin mà thôi.
chinh (21:15 24/10/2011)
<?php$con=mysql_connect("localhost","root", "") or die(" khong ket noi được csdl");
mysql_select_db("qlbh" ,$con) or die("khong kết nói được csdl");
//require 'ketnoi.php';
$us=$_POST['NAME'];
$pass=$_POST['PASS'];
IF(empty ($us) && empty ($pass))
{
require 'loi.php';
}
else {
$sql=mysql_query("seclect * from tb_khach_hang where use==$us and pass==$pass");
$kq=mysql_query($sql);
if( mysql_num_rows($kq)!=0)
{
if($us=="chinh" && $pass=="123")
{
require 'loi.php';
}
else
{
require 'thongtin.php';
}
}
else
{
require 'loi.php';
}
}
?>
mấy bạn giúp mình với mình làm mà nó báo lỗi dòng 17 giúp mình vs bạn ơi
Reply