You are on page 1of 6

Trong bi trc chng ta ni v cch thm v qun l thnh vin kt hp PHP v

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.

You might also like