Professional Documents
Culture Documents
Bài 14 viết ứng dụng sửa xóa thành viên bằng PHP và MYSQL
Bài 14 viết ứng dụng sửa xóa thành viên bằng PHP và MYSQL
MYSQL. Tip theo trong bi ny, chng ta s vit tip 2 ng dng sa v xa thnh vin
hon tt module user.
theo kp bi ny, cc bn vui lng xem li bi 11,12,13. V cc bi c hng dn lin
mch t u ti cui.
Cng nh nhng bi trc, h thng sa v xa thnh vin ny cng ch c th thc hin
c khi ngi s dng ng nhp thnh cng vi quyn hn ca 1 administrator. Do vy,
bn ng qun kim tra session u khi bt u vit ng dng ny nh.
<?php
sessison_start();
if (isset($_SESSION['userid']) &&
{
// t?i y th?c thi cc ho?t ?ng
1
2
3
4
5
6
7
8
9
10
11
12
<?php
sessison_start();
if(isset($_SESSION['userid']) && $_SESSION['level'] == 2)
{
// ti y thc thi cc hot ng khi ng nhp thnh cng.
}
else
{
header("location: login.php");
exit();
}
?>
I - Xy dng trang sa thnh vin:
V l trang chnh sa thnh vin, nn ni dung ca chng c phn s ging vi phn thm
thnh vin, ch khc l cc nhp liu gi y c d liu. D liu ny chng ta tin
hnh ly t c s d liu thng qua bin truyn m trang qun l gi
edit_user.php?userid=$row[id]
Nh vy ly c gi tr t lin kt ny chng ta s s dng bin $_GET['userid']. Sau
khi c c gi tr ny, vic cn li ca bn l ly thng tin ca id ny t c s d liu
v a vo form ngi dng c th chnh sa.
Vy ta c:
<?php
$sql="select * f rom user where
$query=mysql_query($sql);
$row=mysql_f etch_array($que
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql="select * from user where id='".$id."'";
$query=mysql_query($sql);
$row=mysql_fetch_array($query);
?>
<form action="edit_user.php?userid=<?=$id?>" method=post>
Level: <select name=level>
<option value=1 <? if($row[level] == 1) echo "selected"; ?>) >Member</option>
<option value=2 <? if($row[level] == 2) echo "selected"; ?>>Administrator</option>
</select><br />
Username: <input type=text name=user size=20 value="<?=$row[username]?>" /><br
/>
Password: <input type=password name=pass size=20 /> <br />
Re-password: <input type=password name=repass size=20 /><br />
<input type=submit name=ok value="Edit User" />
</form>
Theo nh on code trn phn value chng ta mun a gi tr vo th buc phi s
dng c php gn <?=$ten?> hoc cng c th s dng bng cch <? echo $ten; ?>..
y chng ta ch a ra gi tr trn text box username, cn li mt khu do c th b m
ha nn khng nn hin th ra. Phn level do lu trong c s d liu l nhng con s 1,2
nn khi a ra chng ta phi so snh, nu trong bng lu l 1 th ch c gi tr bng 1 s
thm ch selected. mc nh la chn khi ngi dng nhn vo nt chnh sa.
Tip ti ngi dng s nhn nt edit. Vic cn li ca chng ta l kim tra d liu khi h
tin hnh chnh sa d liu. im khc bit y l chng ta phi cn nhc khi vit trang
chnh sa. Bi khng phi ai vo chnh sa cng u sa c thng tin username, password,
level. C khi h ch sa mi level hoc c khi h ch sa mi password.
V th ta phi xt cc trng hp gii quyt:
Trng hp 1: Ngi dng ch chnh sa username, level m khng chnh sa password.
Khi username, level bt buc u c d liu nn ta khng cn kim tra chng rng
hay khng. Nhng vi password chng ta khng th bt ngi lp trnh nhp liu. V h
hon ton c th rng.
Trng hp 2: Ngi dng chnh sa username, level ,password. Khi ta xem password
c d liu v ta tin hnh cp nht.
gii quyt bi ton trn tha 2 trng hp ta s xt phng php sau:
Ta kim tra password v repassword c ging nhau hay khng ?. Nu chng khc nhau
ngha l ngi dng nhp liu nhng nhp sai. Vy phi cnh bo li cho h bit l h
nhp sai. Cn ngc li nu password v repassword ging nhau th s ny sinh 2 trng
hp con.
+ Mt l password v repassword u c d liu
+ Hai l password v repassword khng c d liu.
Khi trng hp con 1 chng ta s khi to bin $p v ghi nhn thng tin h nhp liu.
V trng hp 2 chng ta khng ghi nhn thng tin ngi nhp liu v h khng c
nh chnh sa mt khu. C th vit on code n gin nh sau:
<?php
if ($_POST['pass'] != $_POST['re
{
echo "Password and re-passw
}
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($_POST['pass'] != $_POST['repass'])
{
echo "Password and re-password is not correct";
}
else
{
if($_POST['pass'] != NULL)
{
$p=$_POST['pass'];
}
}
?>
Tip ti chng ta s phn loi d liu cp nht. Khi c username,password, level th ta cp
nht tt c thng tin ca h bng c php SQL. (xem li bi 9: ngn ng SQL v MYSQL
c bn). Ngc li khi khng tn ti password th ta ch cp nht username v level.
Mt iu na chng ta cn quan tm l i vi lnh update v delete, ta phi truyn 1 id
c th trnh vic chng xa hoc sa d liu ton b trong bng user. Vi id ti truyn
nhn t bn ngoi ta s c.
<?php
if ($u && $p && $l )
{
$sql="update user set usernam
mysql_query($sql);
1
2
3
<?php
if($u && $p && $l )
{
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$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 sa thnh cng mt thnh vin chng ta s a ngi dng tr v vi trang qun l
(xem bi 13 bit cch xy dng trang qun l thnh vin nh th no)
Ni dung ca ton b code trn nh sau:
<?php
$conn=mysql_connect("localho
mysql_select_db("project",$con
$id=$_GET['userid'];
if (isset($_POST['ok']))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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
{
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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);
?>
<form action="edit_user.php?userid=<?=$id?>" method=post>
Level: <select name=level>
<option value=1 <? if($row[level] == 1) echo "selected"; ?>) >Member</option>
<option value=2 <? if($row[level] == 2) echo "selected"; ?>>Administrator</option>
</select><br />
Username: <input type=text name=user size=20 value="<?=$row[username]?>" /><br
/>
Password: <input type=password name=pass size=20 /> <br />
Re-password: <input type=password name=repass size=20 /><br />
<input type=submit name=ok value="Edit User" />
</form>
II - Xy dng trang xa thnh vin:
i vi trang xa d liu, chng ta cng khng cn phi x l qu nhiu. Bi nhim v
ca chng ch n gin l xa i nhng dng trong bng.
Nh vy cng nh trang edit chng ta nhn gi tr t ni dung lin kt trang qun l
gi l del_user.php?userid=$row[id].
V thc thi lnh kt ni csdl x l ni dung ny.
<?php
$conn=mysql_connect("localho
mysql_select_db("project",$con
$sql="delete f rom user where id
mysql_query($sql);
1
2
3
4
5
6
7
8
<?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 xa xong thnh vin th h thng s a chng ta tr v trang qun l user li.
III - Tng kt:
Nh vy chng ta kt thc cc thao tc thm, sa, xa, qun l thnh vin. Qua nhng
chui bi hc ny, chc hn cc bn c nhng khi nim hnh thnh t vic ng dng
lp trnh PHP xy dng cc h thng c bn ri.
Vic lp trnh 1 ng dng i hi bn ngoi vic vn dng ni dung hc ra, bn cn
phi bit linh ng x l cc tnh hung mt cch hiu qu. Trnh vic rp khun mt cch
my mc v hc thuc cc ni dung code. V nhng m hnh khc, bi ton khc bn s
c nhng cch thc x l v gii quyt khc nhau.