4. T o k t n i ñ n Database Server
$bi n_k t_n i =
mysql_connect(“máy_ch ”,“tên”,“m t_kh u”)
or die(“Không k t n i ñư c”);
Hàm die(“Chu i”): ðưa ra thông báo và k t
thúc.
V i cách vi t trên, die ch th c hi n khi l nh
trư c nó không thành công
$cnn =
mysql_connect(“localhost”,”coursek50”,”123
456”);
5. L a ch n cơ s d li u
mysql_select_db(“Tên CSDL”)
or die (“Chưa có CSDL”);
mysql_select_db(“coursek50”);
6. Vi t truy v n
$bi n = mysql_query(“L nh SQL”)
or die(“Không th c hi n ñư c SQL”);
$sql = mysql_query(“Select * From
account Where username = ‘coursek50’
”);
7. Các hàm h tr
mysql_affected_rows(): S b n ghi b tác
ñ ng b i l nh mysql_query li n trư c
mysql_num_rows(): K t qu s b n ghi
c a câu l nh mysql_query
mysql_error(): Thông báo l i (n u có)
mysql_errno(): Mã l i
8. Các hàm x lý k t qu
mysql_fetch_array($sql): tr v m t dòng
b n ghi dư i d ng m t m ng v i ch m c
d ng s ho c tên c a trư ng.
mysql_fetch_row($sql): tr v k t qu là
m t m ng có th t (b t ñ u t 0)
mysql_fetch_assoc($sql): tr v k t qu là
m t m ng ñư c ñánh ch s b ng tên
Tham kh o t i: http://vn2.php.net/mysql
10. Th nào là SQL Injection
Là m t k thu t cho phép nh ng k t n
công thi hành các câu l nh truy v n SQL
b t h p pháp
B ng cách l i d ng l h ng trong vi c
ki m tra d li u nh p trong các ng d ng
web
11. Ví d
$sql=mysql_query(“Select * From
account Where username = ‘$user’ And
password = ‘$pass’”)
N u như User nh p bi n User là: “OR 1 OR
user=“ thì câu l nh SQL s là:
SELECT * FROM users WHERE user = "" OR 1
OR user="" AND password = "$password“
Và k t qu tr v s là toàn b user trong cơ s
d li u
12. (ti p)
$sql=“Insert Into table_name
Values(‘$val1’,’$val2’,’$val3’)”;
N u như các bi n val1 thành như sau:
‘ + (Select Top 1 Fieldname From
TableName) +’
Insert Into TableName Values(‘’ +
Select Top 1 FieldName From
TableName)+ ‘’,’$val2,’$val3’)
13. Cách phòng tránh
SQL Injection khai thác nh ng b t c n c a
các l p trình viên phát tri n ng d ng web
khi x lý d li u nh p vào
Tùy vào môi trư ng và cách c u hình h
th ng mà tác h i là n ng hay nh
14. (ti p)
Ki m soát ch t ch d li u nh p vào
– Gi i h n chi u dài c a chu i nh p li u
– Xây d ng hàm thay th d u 1 nháy ñơn b ng
2 d u nháy ñơn
– Xây d ng hàm lo i b m t s kí t và t khóa
nguy hi m
– Dùng hàm addslashes ñ thêm “” vào trư c
chu i nh p vào
15. Ví d
Hàm length ñ gi i h n ñ dài
Hàm thay th ‘ thành ‘‘
function replace($input)
{
$output = str_replace("'","''",$input);
return $output;
}
16. (ti p)
Hàm lo i b các kí t không mong mu n
function killchar($input)
{
$len = strlen($input);
$char = array("select","drop",";","--
","insert","delete","xp_");
$output = str_replace($char,"",$input);
return $output;
}
18. Gi i thi u
AJAX = Asynchronous JavaScript And XML
AJAX không ph i là ngôn ng m i mà là
m t cách m i s d ng các ngôn ng ñã
có.
AJAX giúp ta t o các trang web nhanh
hơn, ti n l i hơn, thân thi n hơn khi s
d ng.
AJAX là t p h p c a nhi u công ngh v i
th m nh c a riêng mình ñ t o thành
m t s c m nh m i
19. ð c ñi m AJAX
Là công ngh c a web browser. ð c l p
v i web server.
S d ng JavaScript ñ g i và nh n d li u
gi a client và server.
AJAX d a trên:
– JavaScript
– XML
– HTML
– CSS
AJAX s d ng XML và HTTP Request
21. Truy xu t d li u t server trong JavaScript
V i IE6: s d ng Msxml2.XMLHTTP:
XMLHttp =
new ActiveXObject("Msxml2.XMLHTTP")
V i IE5.6: s d ng Microsoft.XMLHTTP
XMLHttp =
new ActiveXObject("Microsoft.XMLHTTP")
V i trình duy t khác: XMLHttpRequest
XMLHttp=new XMLHttpRequest()
22. Mã l nh t ng quát
function GetXMLHttpObject(){
var oXMLHttp=null
try{
oXMLHttp=new ActiveXObject("Msxml2.XMLHttp")
}
catch(e){
try{
oXMLHttp=new ActiveXObject("Microsoft.XMLHttp")
}
catch (e){}
}
if (oXMLHttp==null)
oXMLHttp=new XMLHttpRequest()
return oXMLHttp;
}
23. ð i tư ng XMLHttpRequest
Các phương th c
– open(“method,”url”): Thi t l p yêu c u ñ n
server (ñ a ch trang c n k t n i ñ n)
– send(content): G i yêu c u ñ n server.
– abort(): H y yêu c u hi n t i
Các thu c tính
– readyState: Tr ng thái hi n t i c a ñ i tư ng.
– onreadystatechange: B x lý s ki n cho m t
s ki n phát sinh khi có thay ñ i tr ng thái
– responseText: Chu i d li u tr v .
24. (ti p)
responseXML Response tr v t server
dư i d ng XML. ð i tư ng này có th ñư c
phân tách và kh o sát như m t ñ i tư ng
tài li u DOM.
status Mã tr ng thái HTTP t server
(ch ng h n 200 n u không có l i, 404 cho
l i Not Found, …).
statusText Thông ñi p c a mã tr ng thái
HTTP (ch ng h n OK hay Not Found, …)
25. Thu c tính readyState
readyState=0: Chưa kh i t o: sau khi t o ñ i
tư ng XMLHttpRequest nhưng chưa g i open().
readyState=1: V a kh i t o: sau khi g i open()
nhưng chưa g i send().
readyState=2: V a g i ñi: ngay sau khi g i
send().
readyState=3: ðang x lý: sau khi k t n i ñ n
server nhưng server chưa tr l i.
readyState=4: Xong: sau khi server tính toán
xong, d li u ñã g i v xong.
26. Quá trình tương tác
1. M t event client-side gây ra 1 s ki n –
Ajax event. B t kỳ m t tác ñ ng nào
cũng có th gây ra Ajax event
<input type="text" id="email"
name="email" onblur =
"validateEmail()";>
27. (ti p)
2. M t th hi n c a XMLHttpRequest ñư c
t o ra:
– dùng phương th c open()
– t o l i g i hàm
– ñ a ch URL ñư c thi t l p cùng v i phương
th c Http ñư c yêu c u
– request ñư c t o ra qua vi c g i send()
28. (ti p)
var xmlHttp;
function validateEmail() {
var email = document.getElementById("email");
var url = "validate?email=" + escape(email.value);
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
xmlHttp.open("GET", url);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
29. (ti p)
3. M t request ñư c t o và g i ñ n server
4. Server x lý yêu c u (truy c p cơ s d
li u, tác v h th ng...)
5. Response ñư c tr v cho trình duy t (x
lý d ng text/xml)
header('Content-Type: text/xml');
30. (ti p)
6. C u hình XMLHttpRequest ñ g i hàm
callback() khi k t qu x lý ñư c tr v
function callback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
//do something interesting here
}
}
}