SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
PHP The Fourth Day
                                       ðào Quang Minh
        Trung tâm Tính toán Hi u năng cao – ðHBK Hà N i
                                  minh0302@gmail.com
                       http://hpcc.hut.edu.vn/~minhdq
Chương 3: PHP và MySQL




1. Các bư c truy c p CSDL


2. SQL Injection
Các bư c truy c p cơ s d li u
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”);
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”);
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’
”);
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
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
SQL Injuction
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
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
(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’)
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
(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
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;
}
(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;

}
L p trình AJAX
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
ð 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
So sánh



             Click –Wait-And-Refresh




Ajax based
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()
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;
}
ð 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 .
(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, …)
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.
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()";>
(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()
(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);
}
(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');
(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
        }
    }
  }

Más contenido relacionado

La actualidad más candente

Slide3 - Co ban HTML5
Slide3 - Co ban HTML5Slide3 - Co ban HTML5
Slide3 - Co ban HTML5Đặng Til
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPelearninglabvn
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developerAiTi Education
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaBrand Xanh
 
Android Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingAndroid Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingPhuoc Nguyen
 
05 - Phan Thai Trung - Tu dong dat hang tu he thong ban le lon nhat Trung Quoc
05 - Phan Thai Trung - Tu dong dat hang tu he thong ban le lon nhat Trung Quoc05 - Phan Thai Trung - Tu dong dat hang tu he thong ban le lon nhat Trung Quoc
05 - Phan Thai Trung - Tu dong dat hang tu he thong ban le lon nhat Trung QuocNguyen Duc Phu
 
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPTBÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPTMasterCode.vn
 
Bai Tap Thuc Hanh Javascript
Bai Tap Thuc Hanh JavascriptBai Tap Thuc Hanh Javascript
Bai Tap Thuc Hanh JavascriptSamQuiDaiBo
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java scripthieusy
 
Phan thai trung tu dong dat hang tu he thong ban le lon nhat trung quoc
Phan thai trung   tu dong dat hang tu he thong ban le lon nhat trung quocPhan thai trung   tu dong dat hang tu he thong ban le lon nhat trung quoc
Phan thai trung tu dong dat hang tu he thong ban le lon nhat trung quocTrung Phan Thai
 
Thuc thi menh lenh voi co so du lieu
Thuc thi menh lenh voi co so du lieuThuc thi menh lenh voi co so du lieu
Thuc thi menh lenh voi co so du lieutruong le hung
 
Bai tap java_script-html-2016
Bai tap java_script-html-2016Bai tap java_script-html-2016
Bai tap java_script-html-2016viethoang89
 
Bai tap thuc hanh javascript
Bai tap thuc hanh javascriptBai tap thuc hanh javascript
Bai tap thuc hanh javascriptnkquank7d
 
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#Dao Uit
 

La actualidad más candente (18)

Slide3 - Co ban HTML5
Slide3 - Co ban HTML5Slide3 - Co ban HTML5
Slide3 - Co ban HTML5
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developer
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với java
 
Android Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML ParsingAndroid Nâng cao-Bài 8-JSON & XML Parsing
Android Nâng cao-Bài 8-JSON & XML Parsing
 
Kiem tra javascript
Kiem tra javascriptKiem tra javascript
Kiem tra javascript
 
05 - Phan Thai Trung - Tu dong dat hang tu he thong ban le lon nhat Trung Quoc
05 - Phan Thai Trung - Tu dong dat hang tu he thong ban le lon nhat Trung Quoc05 - Phan Thai Trung - Tu dong dat hang tu he thong ban le lon nhat Trung Quoc
05 - Phan Thai Trung - Tu dong dat hang tu he thong ban le lon nhat Trung Quoc
 
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPTBÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
 
Bai Tap Thuc Hanh Javascript
Bai Tap Thuc Hanh JavascriptBai Tap Thuc Hanh Javascript
Bai Tap Thuc Hanh Javascript
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
Cấu trúc cơ bản
Cấu trúc cơ bảnCấu trúc cơ bản
Cấu trúc cơ bản
 
Phan thai trung tu dong dat hang tu he thong ban le lon nhat trung quoc
Phan thai trung   tu dong dat hang tu he thong ban le lon nhat trung quocPhan thai trung   tu dong dat hang tu he thong ban le lon nhat trung quoc
Phan thai trung tu dong dat hang tu he thong ban le lon nhat trung quoc
 
Thuc thi menh lenh voi co so du lieu
Thuc thi menh lenh voi co so du lieuThuc thi menh lenh voi co so du lieu
Thuc thi menh lenh voi co so du lieu
 
Bai tap java_script-html-2016
Bai tap java_script-html-2016Bai tap java_script-html-2016
Bai tap java_script-html-2016
 
Javascript and dom_html
Javascript and dom_htmlJavascript and dom_html
Javascript and dom_html
 
Bai tap thuc hanh javascript
Bai tap thuc hanh javascriptBai tap thuc hanh javascript
Bai tap thuc hanh javascript
 
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
 
Ung dung web chuong 7
Ung dung web  chuong 7Ung dung web  chuong 7
Ung dung web chuong 7
 

Destacado

Hypersexualization In Music Videos
Hypersexualization In Music VideosHypersexualization In Music Videos
Hypersexualization In Music VideosMayce712
 
Frontline sms - laura hudson
Frontline sms - laura hudsonFrontline sms - laura hudson
Frontline sms - laura hudsonKev Scarr
 
Els 3 porquets annex 15
Els 3 porquets annex 15Els 3 porquets annex 15
Els 3 porquets annex 15elicbdn
 
100讀書會講綱100.04.07
100讀書會講綱100.04.07100讀書會講綱100.04.07
100讀書會講綱100.04.07Kuo-Yi Chen
 
DMSRetail workshops
DMSRetail workshopsDMSRetail workshops
DMSRetail workshopsparmaks
 
Risk Insurance April 2010
Risk Insurance April 2010Risk Insurance April 2010
Risk Insurance April 2010WealthEngine
 
200901011455240 96教育部高中優質化輔助方案總檢討會特色簡報
200901011455240 96教育部高中優質化輔助方案總檢討會特色簡報200901011455240 96教育部高中優質化輔助方案總檢討會特色簡報
200901011455240 96教育部高中優質化輔助方案總檢討會特色簡報Kuo-Yi Chen
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-daniellerouxIBM
 
Orden de carreras y de mandiles reunión nº2 15 05-16
Orden de carreras y de mandiles reunión nº2 15 05-16Orden de carreras y de mandiles reunión nº2 15 05-16
Orden de carreras y de mandiles reunión nº2 15 05-16UTTA OSPAT
 
初鄉親職講綱100.05.04正確
初鄉親職講綱100.05.04正確初鄉親職講綱100.05.04正確
初鄉親職講綱100.05.04正確Kuo-Yi Chen
 
Ratificados 15 12-13
Ratificados 15 12-13Ratificados 15 12-13
Ratificados 15 12-13UTTA OSPAT
 
21st century teaching and learning with iPad
21st century teaching and learning with iPad21st century teaching and learning with iPad
21st century teaching and learning with iPadDonna Spear
 

Destacado (20)

Shouguang 2010 soilless production systems
Shouguang 2010   soilless production systemsShouguang 2010   soilless production systems
Shouguang 2010 soilless production systems
 
Calc 100 (2)
Calc 100 (2)Calc 100 (2)
Calc 100 (2)
 
Hypersexualization In Music Videos
Hypersexualization In Music VideosHypersexualization In Music Videos
Hypersexualization In Music Videos
 
Frontline sms - laura hudson
Frontline sms - laura hudsonFrontline sms - laura hudson
Frontline sms - laura hudson
 
PLAN DE EVACUACIÓN
PLAN DE EVACUACIÓNPLAN DE EVACUACIÓN
PLAN DE EVACUACIÓN
 
Els 3 porquets annex 15
Els 3 porquets annex 15Els 3 porquets annex 15
Els 3 porquets annex 15
 
BLANCONIEVES
BLANCONIEVESBLANCONIEVES
BLANCONIEVES
 
Xhy
XhyXhy
Xhy
 
100讀書會講綱100.04.07
100讀書會講綱100.04.07100讀書會講綱100.04.07
100讀書會講綱100.04.07
 
Commission recherche, renforcement de capacité, formation - Ecovillage Madaga...
Commission recherche, renforcement de capacité, formation - Ecovillage Madaga...Commission recherche, renforcement de capacité, formation - Ecovillage Madaga...
Commission recherche, renforcement de capacité, formation - Ecovillage Madaga...
 
DMSRetail workshops
DMSRetail workshopsDMSRetail workshops
DMSRetail workshops
 
Risk Insurance April 2010
Risk Insurance April 2010Risk Insurance April 2010
Risk Insurance April 2010
 
200901011455240 96教育部高中優質化輔助方案總檢討會特色簡報
200901011455240 96教育部高中優質化輔助方案總檢討會特色簡報200901011455240 96教育部高中優質化輔助方案總檢討會特色簡報
200901011455240 96教育部高中優質化輔助方案總檢討會特色簡報
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
 
Resolucion 65
Resolucion 65Resolucion 65
Resolucion 65
 
Orden de carreras y de mandiles reunión nº2 15 05-16
Orden de carreras y de mandiles reunión nº2 15 05-16Orden de carreras y de mandiles reunión nº2 15 05-16
Orden de carreras y de mandiles reunión nº2 15 05-16
 
Penilaian bandar sg
Penilaian bandar sgPenilaian bandar sg
Penilaian bandar sg
 
初鄉親職講綱100.05.04正確
初鄉親職講綱100.05.04正確初鄉親職講綱100.05.04正確
初鄉親職講綱100.05.04正確
 
Ratificados 15 12-13
Ratificados 15 12-13Ratificados 15 12-13
Ratificados 15 12-13
 
21st century teaching and learning with iPad
21st century teaching and learning with iPad21st century teaching and learning with iPad
21st century teaching and learning with iPad
 

Similar a Php day4

Bài 3: Servlet - Lập Trình Mạng Nâng Cao
Bài 3: Servlet - Lập Trình Mạng Nâng CaoBài 3: Servlet - Lập Trình Mạng Nâng Cao
Bài 3: Servlet - Lập Trình Mạng Nâng CaoTuan Nguyen
 
Golang web database3
Golang web database3Golang web database3
Golang web database3NISCI
 
Bài 3: Servlet&Cookie&Session - Lập Trình Mạng Nâng Cao
Bài 3: Servlet&Cookie&Session - Lập Trình Mạng Nâng CaoBài 3: Servlet&Cookie&Session - Lập Trình Mạng Nâng Cao
Bài 3: Servlet&Cookie&Session - Lập Trình Mạng Nâng CaoTuan Nguyen
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-zManhh Nguyễn
 
Bao thuc tap tot nghiep vo minh truong 10299191
Bao thuc tap tot nghiep vo minh truong 10299191Bao thuc tap tot nghiep vo minh truong 10299191
Bao thuc tap tot nghiep vo minh truong 10299191Cu Sock
 
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoBài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoTuan Nguyen
 
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, databaseBáo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, databaseDlinh Truong
 
Tai lieu-huong dan ajax
Tai lieu-huong dan ajaxTai lieu-huong dan ajax
Tai lieu-huong dan ajaxtraitimvohon
 
Tai lieu-huong dan ajax
Tai lieu-huong dan ajaxTai lieu-huong dan ajax
Tai lieu-huong dan ajaxKim Hyun Hai
 
The Art of Readable Code - DongPV
The Art of Readable Code - DongPVThe Art of Readable Code - DongPV
The Art of Readable Code - DongPVĐông Đô
 
Ajax report
Ajax reportAjax report
Ajax reportdvcuong
 
Lập Trình an toàn - Secure programming
Lập Trình an toàn - Secure programmingLập Trình an toàn - Secure programming
Lập Trình an toàn - Secure programmingbeatmaking
 

Similar a Php day4 (20)

Bài 3: Servlet - Lập Trình Mạng Nâng Cao
Bài 3: Servlet - Lập Trình Mạng Nâng CaoBài 3: Servlet - Lập Trình Mạng Nâng Cao
Bài 3: Servlet - Lập Trình Mạng Nâng Cao
 
Golang web database3
Golang web database3Golang web database3
Golang web database3
 
Bài 3: Servlet&Cookie&Session - Lập Trình Mạng Nâng Cao
Bài 3: Servlet&Cookie&Session - Lập Trình Mạng Nâng CaoBài 3: Servlet&Cookie&Session - Lập Trình Mạng Nâng Cao
Bài 3: Servlet&Cookie&Session - Lập Trình Mạng Nâng Cao
 
Bai th08 php voi csdl
Bai th08 php voi csdlBai th08 php voi csdl
Bai th08 php voi csdl
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-z
 
Ung dung web chuong 5
Ung dung web  chuong 5Ung dung web  chuong 5
Ung dung web chuong 5
 
Bao thuc tap tot nghiep vo minh truong 10299191
Bao thuc tap tot nghiep vo minh truong 10299191Bao thuc tap tot nghiep vo minh truong 10299191
Bao thuc tap tot nghiep vo minh truong 10299191
 
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng CaoBài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
Bài 4: JSP Cơ Bản - Lập Trình Mạng Nâng Cao
 
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, databaseBáo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
Báo cáo tuần 4- Xây dựng các class liên quan khách hàng, cơ hội, database
 
Tai lieu-huong dan ajax
Tai lieu-huong dan ajaxTai lieu-huong dan ajax
Tai lieu-huong dan ajax
 
Tai lieu-huong dan ajax
Tai lieu-huong dan ajaxTai lieu-huong dan ajax
Tai lieu-huong dan ajax
 
The Art of Readable Code - DongPV
The Art of Readable Code - DongPVThe Art of Readable Code - DongPV
The Art of Readable Code - DongPV
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
Dsd05 02b-json-rpca
Dsd05 02b-json-rpcaDsd05 02b-json-rpca
Dsd05 02b-json-rpca
 
Cach su dung data reader
Cach su dung data readerCach su dung data reader
Cach su dung data reader
 
C3-Javascript.pdf
C3-Javascript.pdfC3-Javascript.pdf
C3-Javascript.pdf
 
Asp
AspAsp
Asp
 
Ajax report
Ajax reportAjax report
Ajax report
 
Lập Trình an toàn - Secure programming
Lập Trình an toàn - Secure programmingLập Trình an toàn - Secure programming
Lập Trình an toàn - Secure programming
 
Dsd05 02a-xml-rpca
Dsd05 02a-xml-rpcaDsd05 02a-xml-rpca
Dsd05 02a-xml-rpca
 

Más de Giang Nguyễn

Php can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comPhp can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comGiang Nguyễn
 
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlLap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlGiang Nguyễn
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Giang Nguyễn
 
Hay php architect eav modeling
Hay php architect   eav modelingHay php architect   eav modeling
Hay php architect eav modelingGiang Nguyễn
 
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongHaiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongGiang Nguyễn
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlGiang Nguyễn
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlGiang Nguyễn
 
Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Giang Nguyễn
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameGiang Nguyễn
 
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuBuilding websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuGiang Nguyễn
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release reviewGiang Nguyễn
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csauGiang Nguyễn
 

Más de Giang Nguyễn (20)

Php can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comPhp can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.com
 
Os xmldomphp
Os xmldomphpOs xmldomphp
Os xmldomphp
 
Os php-7oohabits
Os php-7oohabitsOs php-7oohabits
Os php-7oohabits
 
Os php-5.3new1
Os php-5.3new1Os php-5.3new1
Os php-5.3new1
 
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlLap trinh web dong voi php my sql
Lap trinh web dong voi php my sql
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01
 
Hay php architect eav modeling
Hay php architect   eav modelingHay php architect   eav modeling
Hay php architect eav modeling
 
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongHaiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
 
Chuong07 php
Chuong07 phpChuong07 php
Chuong07 php
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sql
 
Hd lap pttkht2008
Hd lap pttkht2008Hd lap pttkht2008
Hd lap pttkht2008
 
Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
Canbanvethietkevalaptrinhgame
 
C1
C1C1
C1
 
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuBuilding websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release review
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csau
 
Analyse
AnalyseAnalyse
Analyse
 
Bai1
Bai1Bai1
Bai1
 

Php day4

  • 1. PHP The Fourth Day ðào Quang Minh Trung tâm Tính toán Hi u năng cao – ðHBK Hà N i minh0302@gmail.com http://hpcc.hut.edu.vn/~minhdq
  • 2. Chương 3: PHP và MySQL 1. Các bư c truy c p CSDL 2. SQL Injection
  • 3. Các bư c truy c p cơ s d li u
  • 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; }
  • 17. L p trình AJAX
  • 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
  • 20. So sánh Click –Wait-And-Refresh Ajax based
  • 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 } } }