Your SlideShare is downloading. ×
Php day4
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Php day4

266
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
266
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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à MySQL1. Các bư c truy c p CSDL2. 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 tthúc.V i cách vi t trên, die ch th c hi n khi l nhtrư c nó không thành công$cnn =mysql_connect(“localhost”,”coursek50”,”123456”);
  • 5. L a ch n cơ s d li umysql_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 * Fromaccount Where username = ‘coursek50’”);
  • 7. Các hàm h trmysql_affected_rows(): S b n ghi b tácñ ng b i l nh mysql_query li n trư cmysql_num_rows(): K t qu s b n ghic a câu l nh mysql_querymysql_error(): Thông báo l i (n u có)mysql_errno(): Mã l i
  • 8. Các hàm x lý k t qumysql_fetch_array($sql): tr v m t dòngb n ghi dư i d ng m t m ng v i ch m cd 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ênTham kh o t i: http://vn2.php.net/mysql
  • 9. SQL Injuction
  • 10. Th nào là SQL InjectionLà m t k thu t cho phép nh ng k t ncông thi hành các câu l nh truy v n SQLb t h p phápB ng cách l i d ng l h ng trong vi cki m tra d li u nh p trong các ng d ngweb
  • 11. Ví d$sql=mysql_query(“Select * Fromaccount Where username = ‘$user’ Andpassword = ‘$pass’”)N u như User nh p bi n User là: “OR 1 ORuser=“ thì câu l nh SQL s là:SELECT * FROM users WHERE user = "" OR 1OR user="" AND password = "$password“ Và k t qu tr v s là toàn b user trong cơ sd 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ánhSQL Injection khai thác nh ng b t c n c acác l p trình viên phát tri n ng d ng webkhi x lý d li u nh p vàoTùy vào môi trư ng và cách c u hình hth 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í dHàm length ñ gi i h n ñ dàiHà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 nfunction 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 uAJAX = Asynchronous JavaScript And XMLAJAX 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 nhanhhơn, ti n l i hơn, thân thi n hơn khi sd ng.AJAX là t p h p c a nhi u công ngh v ith m nh c a riêng mình ñ t o thànhm t s c m nh m i
  • 19. ð c ñi m AJAXLà công ngh c a web browser. ð c l pv i web server.S d ng JavaScript ñ g i và nh n d li ugi a client và server.AJAX d a trên:– JavaScript– XML– HTML– CSSAJAX s d ng XML và HTTP Request
  • 20. So sánh Click –Wait-And-RefreshAjax based
  • 21. Truy xu t d li u t server trong JavaScriptV i IE6: s d ng Msxml2.XMLHTTP:XMLHttp = new ActiveXObject("Msxml2.XMLHTTP")V i IE5.6: s d ng Microsoft.XMLHTTPXMLHttp = new ActiveXObject("Microsoft.XMLHTTP")V i trình duy t khác: XMLHttpRequestXMLHttp=new XMLHttpRequest()
  • 22. Mã l nh t ng quátfunction 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 XMLHttpRequestCá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 iCá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 serverdư i d ng XML. ð i tư ng này có th ñư cphân tách và kh o sát như m t ñ i tư ngtà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 chol i Not Found, …).statusText Thông ñi p c a mã tr ng tháiHTTP (ch ng h n OK hay Not Found, …)
  • 25. Thu c tính readyStatereadyState=0: Chưa kh i t o: sau khi t o ñ itư 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 isend().readyState=3: ðang x lý: sau khi k t n i ñ nserver nhưng server chưa tr l i.readyState=4: Xong: sau khi server tính toánxong, d li u ñã g i v xong.
  • 26. Quá trình tương tác1. 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 server4. 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 } } }