Lập trình PHP - Bài 14: Viết ứng dụng sửa xóa thành viên bằng PHP và MySQL

Trong bài trước chúng ta đã nói về cách thêm và quản lý thành viên kết hợp PHP và MYSQL.

Tiếp theo trong bài này, chúng ta sẽ viết tiếp 2 ứng dụng sửa và xóa thành viên để hoàn tất

module user.

Để theo kịp bài này, các bạn vui lòng xem lại bài 11,12,13. Vì các bài được hưỡng dẫn liền mạch

từ đầu tới cuối.

Cũng như những bài trước, hệ thống sửa và xóa thành viên này cũng chỉ có thể thực hiện được

khi người sử dụng đăng nhập thành công với quyền hạn của 1 administrator. Do vậy, bạn đừng

quên kiểm tra session ở đầu khi bắt đầu viết ứng dụng này nhé.

pdf5 trang | Chuyên mục: PHP | Chia sẻ: dkS00TYs | Lượt xem: 1945 | Lượt tải: 2download
Tóm tắt nội dung Lập trình PHP - Bài 14: Viết ứng dụng sửa xóa thành viên bằng PHP và MySQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Bài 14: viết ứng dụng sửa xóa thành viên bằng PHP và 
MYSQL 
Trong bài trước chúng ta đã nói về cách thêm và quản lý thành viên kết hợp PHP và MYSQL. 
Tiếp theo trong bài này, chúng ta sẽ viết tiếp 2 ứng dụng sửa và xóa thành viên để hoàn tất 
module user. 
Để theo kịp bài này, các bạn vui lòng xem lại bài 11,12,13. Vì các bài được hưỡng dẫn liền mạch 
từ đầu tới cuối. 
Cũng như những bài trước, hệ thống sửa và xóa thành viên này cũng chỉ có thể thực hiện được 
khi người sử dụng đăng nhập thành công với quyền hạn của 1 administrator. Do vậy, bạn đừng 
quên kiểm tra session ở đầu khi bắt đầu viết ứng dụng này nhé. 
<?php 
sessison_start(); 
if(isset($_SESSION['userid']) && $_SESSION['level'] == 2) 
{ 
 // tại đây thực thi các hoạt động khi đăng nhập thành công. 
} 
else 
{ 
 header("location: login.php"); 
 exit(); 
} 
?> 
A- Xây dựng trang sửa thành viên: 
Vì là trang chỉnh sửa thành viên, nên nội dung của chúng có phần sẽ giống với phần thêm thành 
viên, chỉ khác là các ô nhập liệu giờ đây đã có dữ liệu. Dữ liệu này chúng ta tiến hành lấy từ cơ 
sở dữ liệu thông qua biến truyền mà ở trang quản lý đã gửi edit_user.php?userid=$row[id] 
Như vậy để lấy được giá trị từ liên kết này chúng ta sẽ sử dụng biến $_GET['userid']. Sau khi đã 
có được giá trị này, việc còn lại của bạn là lấy thông tin của id này từ cơ sở dữ liệu và đưa vào 
form để người dùng có thể chỉnh sửa. 
Vậy ta có. 
<?php 
$sql="select * from user where id='".$id."'"; 
$query=mysql_query($sql); 
$row=mysql_fetch_array($query); 
?> 
" method=post> 
Level: 
) >Member 
>Administrator 
Username: " /> 
Password: 
Re-password: 
Theo như đoạn code ở trên phần value chúng ta muốn đưa giá trị vào thì buộc phải sử dụng cú 
pháp gọn hoặc cũng có thể sử dụng bằng cách .. Ở đây chúng ta chỉ 
đưa ra giá trị trên text box username, còn lại mật khẩu do có thể bị mã hóa nên không nên hiển 
thị ra. Phần level do lưu trong cơ sở dữ liệu là những con số 1,2 nên khi đưa ra chúng ta phải so 
sánh, nếu trong bảng lưu là 1 thì ở chỗ có giá trị bằng 1 sẽ thêm chữ selected. Để mặc định lựa 
chọn khi người dùng nhấn vào nút chỉnh sửa. 
Tiếp tới người dùng sẽ nhấn nút edit. Việc còn lại của chúng ta là kiểm tra dữ liệu khi họ tiến 
hành chỉnh sửa dữ liệu. Điểm khác biệt ở đây là chúng ta phải cân nhắc khi viết trang chỉnh sửa. 
Bởi không phải ai vào chỉnh sửa cũng đều sửa cả thông tin username, password, level. Có khi họ 
chỉ sửa mỗi level hoặc có khi họ chỉ sửa mỗi password. 
Vì thế ta phải xét các trường hợp để giải quyết. 
Trướng hợp 1: Người dùng chỉ chỉnh sửa username, level mà không chỉnh sửa password. Khi 
đó username, level bắt buộc đều đã có dữ liệu nên ta không cần kiểm tra chúng rỗng hay không. 
Nhưng với password chúng ta không thể bắt người lập trình nhập liệu. Và họ hoàn toàn có thể để 
rỗng. 
Trường hợp 2: Người dùng chỉnh sửa username, level ,password. Khi đó ta xem password có dữ 
liệu và ta tiến hành cập nhật. 
Để giải quyết bài toán trên thỏa 2 trường hợp ta sẽ xét phương pháp sau: 
Ta kiểm tra password và repassword có giống nhau hay không ?. Nếu chúng khác nhau nghĩa là 
người dùng nhập liệu nhưng nhập sai. Vậy phải cảnh báo lỗi cho họ biết là họ đã nhập sai. Còn 
ngược lại nếu password và repassword giống nhau thì sẽ nảy sinh 2 trường hợp con. 
+ Một là password và repassword đều có dữ liệu 
 + Hai là password và repassword không có dữ liệu. 
Khi đó ở trường hợp con 1 chúng ta sẽ khởi tạo biến $p và ghi nhận thông tin họ nhập liệu. Và ở 
trường hợp 2 chúng ta không ghi nhận thông tin người nhập liệu vì họ không có ý định chỉnh sửa 
mật khẩu. Có thể viết đoạn code đơn giản như sau: 
<?php 
if($_POST['pass'] != $_POST['repass']) 
{ 
 echo "Password and re-password is not correct"; 
} 
else 
{ 
 if($_POST['pass'] != NULL) 
 { 
 $p=$_POST['pass']; 
 } 
} 
?> 
Tiếp tới chúng ta sẽ phân loại dữ liệu cập nhật. Khi có username,password, level thì ta cập nhật 
tất cả thông tin của họ bằng cú pháp SQL. (xem lại bài 9: ngôn ngữ SQL và MYSQL cơ bản). 
Ngược lại khi không tồn tại password thì ta chỉ cập nhật username và level. 
Một điều nữa chúng ta cần quan tâm đó là đối với lệnh update và delete, ta phải truyền 1 id cụ 
thể để tránh việc chúng xóa hoặc sửa dữ liệu toàn bộ trong bảng user. Với id tôi truyền nhận từ 
bên ngoài ta sẽ có. 
<?php 
if($u && $p && $l ) 
{ 
 $sql="update user set username='".$u."', password='".$p."', level='".$l."' where id='".$id."'"; 
 mysql_query($sql); 
 header("location:mana_user.php"); 
 exit(); 
} 
else 
{ 
 if($u && $l) 
 { 
 $sql="update user set username='".$u."', level='".$l."' where id='".$id."'"; 
 mysql_query($sql); 
 header("location:mana_user.php"); 
 exit(); 
 } 
} 
?> 
Sau khi sửa thành công một thành viên chúng ta sẽ đưa người dùng trở về với trang quản lý (xem 
bài 13 để biết cách xây dựng trang quản lý thành viên như thế nào) 
Nội dung của toàn bộ code ở trên như sau: 
<?php 
$conn=mysql_connect("localhost","root","root") or die("can't connect this database"); 
mysql_select_db("project",$conn); 
$id=$_GET['userid']; 
if(isset($_POST['ok'])) 
{ 
 if($_POST['user'] == NULL) 
 { 
 echo "Please enter your username"; 
 } 
 else 
 { 
 $u=$_POST['user']; 
 } 
 if($_POST['pass'] != $_POST['repass']) 
 { 
 echo "Password and re-password is not correct"; 
 } 
 else 
 { 
 if($_POST['pass'] != NULL) 
 { 
 $p=$_POST['pass']; 
 } 
 } 
 $l = $_POST['level']; 
 if($u && $p && $l ) 
 { 
 $sql="update user set username='".$u."', password='".$p."', level='".$l."' where id='".$id."'"; 
 mysql_query($sql); 
 header("location:mana_user.php"); 
 exit(); 
 } 
 else 
 { 
 if($u && $l) 
 { 
 $sql="update user set username='".$u."', level='".$l."' where id='".$id."'"; 
 mysql_query($sql); 
 header("location:mana_user.php"); 
 exit(); 
 } 
 } 
} 
$sql="select * from user where id='".$id."'"; 
$query=mysql_query($sql); 
$row=mysql_fetch_array($query); 
?> 
" method=post> 
Level: 
) >Member 
>Administrator 
Username: " /> 
Password: 
Re-password: 
B- Xây dựng trang xóa thành viên: 
Đối với trang xóa dữ liệu, chúng ta cũng không cần phải xử lý quá nhiều. Bởi nhiệm vụ của 
chúng chỉ đơn giản là xóa đi những dòng trong bảng. 
Như vậy cũng như trang edit chúng ta nhận giá trị từ nội dung liên kết ở trang quản lý đã gửi là 
del_user.php?userid=$row[id]. 
Và thực thi lệnh kết nối csdl để xử lý nội dung này. 
<?php 
$conn=mysql_connect("localhost","root","root") or die("can't connect this database"); 
mysql_select_db("project",$conn); 
$sql="delete from user where id='".$id."'"; 
mysql_query($sql); 
header("location:mana_user.php"); 
exit(); 
?> 
Sau khi xóa xong thành viên thì hệ thống sẽ đưa chúng ta trở về trang quản lý user lại. 
C- Tổng kết: 
 Như vậy chúng ta đã kết thúc các thao tác thêm, sửa, xóa, quản lý thành viên. Qua những chuỗi 
bài học này, chắc hẳn các bạn đã có những khái niệm hình thành từ việc ứng dụng lập trình PHP 
để xây dựng các hệ thống cơ bản rồi. Việc lập trình 1 ứng dụng đòi hỏi bạn ngoài việc vận dụng 
nội dung đã học ra, bạn còn phải biết linh động xử lý các tình huống một cách hiệu quả. Tránh 
việc rập khuôn một cách máy móc và học thuộc các nội dung code. Vì ở những mô hình khác, 
bài toán khác bạn sẽ có những cách thức xử lý và giải quyết khác nhau. 

File đính kèm:

  • pdf14.pdf
Tài liệu liên quan