Đào Tạo PHP & Mysql

Học PHP Online - PHP Framework - Tự Học 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.


Form 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
Bạn vẫn chưa hiểu rõ vấn đề ?. Bạn vẫn còn nhiều điều thắc mắc ?. Bạn gặp lỗi khi thực hành mã lệnh trên ?. Hãy tham gia diễn đàn QHOnline.Info để nhận được sự giúp đỡ từ phía cộng đồng nhanh nhất. Đồng thời tải những tài liệu giá trị tại diễn đàn. Việc đăng ký là hoàn toàn miễn phí, hãy đăng ký ngay để chúng tôi giúp đỡ bạn nhé.

Ghi rõ nguồn từ website QHOnline.Info - Khi bạn phát hành lại thông tin từ website này

Phản hồi của bạn Tiếng Anh Telex VNI VIQR





hoang (10:08 25/04/2010)

đoạn code trên sai ở đâu ấy.ko chạy được

Reply

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 thanks

Reply

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 loi

Reply

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 ? tku

Reply

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

(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ý được

Reply

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. Thanks

Reply

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ày

Reply

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 nhau

Reply

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

PHP MYSQL Online - Hoc PHP - Dao Tao PHP - Học PHP - CakePHP Framework - Lap Trinh PHP Can Ban - Lap Trinh PHP Nang Cao - PHP Framework - Tài liệu,Thư viện
Copyright 2007-2010 © QHOnline.Info | Powered By QHOnline Version 2.0 - XHTML Valid