1 / 43

Phần 2 : PHP & MySQL

Phần 2 : PHP & MySQL. Nội dung. Form & Cơ chế truyền dữ liệu Kỹ thuật gửi tập tin Kết nối dữ liệu. Form và Form Field Cơ chế Truyền và Nhận dữ liệu giữa các trang web Truyền/Nhận qua Phương thức GET Truyền/Nhận qua Phương thức POST Một số ví dụ. Nội dung 5.

asis
Download Presentation

Phần 2 : PHP & MySQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Phần2 : PHP & MySQL

  2. Nội dung • Form & Cơchếtruyềndữliệu • Kỹthuậtgửitập tin • Kếtnốidữliệu

  3. Form và Form Field Cơ chế Truyền và Nhận dữ liệu giữa các trang web Truyền/Nhận qua Phương thức GET Truyền/Nhận qua Phương thức POST Một số ví dụ Nội dung 5 Form & cơchếtruYềndữliệu

  4. Nội dung 5.1 Form & form field

  5. Form và Form Field • Là container chứa các thành phần nhập liệu khác. <FORM NAME=“…” ACTION=“…” METHOD=“…”> <!-- các thành phần của Form --> </FORM> • Các thuộc tính của <FORM> • NAME: tên FORM • ACTION: chỉ định trang web nhận xử lý dữ liệu từ FORM này khi có sự kiện click của button SUBMIT. • METHOD: Xác định phương thức chuyển dữ liệu (POST,GET)

  6. Các thành phần của Form • Gồm các loại Form Field sau: • Text field • Password field • Hidden Text field • Check box • Radio button • File Form Control • Submit Button, Reset Button, Generalized Button • Multiple-line text field • Label • Pull-down menu • Scrolled list • Field Set

  7. Thẻ <input> <INPUTTYPE= “KiểuLoại”NAME= stringVALUE= string …………> • Type: • text / password/ radio/ checkbox • hidden • submit / button

  8. Thẻ <select> <SELECT name=“??” multiple> <optgrouplabel=“string”> <option value=“”> XYZ </option> <option value=“” selected> 123</option> </optgroup> ……</SELECT> • Type: • Combobox • Listbox

  9. Nội dung 5.2 Cơ chế truyền nhận dữ liệu

  10. Cơ chế truyền nhận dữ liệu ?

  11. Cơ chế truyền nhận dữ liệu • Trang web nhập dữ liệu : • Sử dụng đối tượng <form> • Nhập liệu thông qua các formfield • Thực hiện việc truyền dữ liệu thông qua Submit • <FORM ACTION=“URL”METHOD=“GET/POST”> • … • <input type=“submit” value=“Xử lý”> • </FORM> • Trang web nhận dữ liệu (URL): Sử dụng các biến toàn cục của PHP • $_POST[“FieldName”] • $_GET[“FieldName”] • $_REQUEST[“FieldName”]

  12. Cơ chế truyền nhận dữ liệu – Trang web nhập liệu timSach.php <html> <body> <h1>Tìm sách</h1> <formaction="xlTimSach.php" Method="GET" > Từ khóa : <input type="text" name="txtTukhoa"/> <inputtype="submit" value="Tìm"/> </form> </body> </html>

  13. Cơ chế truyền nhận dữ liệu – Trang web nhập liệu xltimSach.php <html> <body> <?php $sTukhoa = $_REQUEST["txtTukhoa"]; ?> <h1>Tìm sách</h1> Từ khóa tìm sách là : <?php echo $sTukhoa; ?> <br /> Kết quả tìm là : </body> </html>

  14. Cơ chế truyền nhận dữ liệu – Trang web nhập liệu xuly.php <html> <body> <form action="xuly.php" Method="GET" > Từ khóa : <input type="text" name="txtTukhoa"/> <input type="submit" value="Tìm"/> </form> <?php $sTukhoa = $_REQUEST["txtTukhoa"]; if (isset($sTukhoa)) { print "Từ khóa tìm sách là : $sTukhoa"; echo "<br>Kết quả tìm là : "; } ?> </body> </html>

  15. Truyền/Nhận qua Phương thức GET • Tham số truyền đi qua địa chỉ URL • http://domain/pathfile?fieldname1=value1&fieldname2=value2 • Ví dụ: • http://localhost/xuly.php?txtTukhoa=PHPHost • Nhận dữ liệu thông qua biến toàn cục của PHP • $_GET[“FieldName”] • $_REQUEST[“FieldName”]

  16. Phương thức GET – Ưu khuyết điểm • Khuyết điểm • Không thích hợp để truyền dữ liệu có tính bảo mật (password) • Dung lượng Dữ liệu truyền đi có giới hạn • URL submit bằng phương thức GET được lưu lại trên server • Ưu điểm • Người dùng có thể bookmark địa chỉ URL • Người dùng có thể Giả lập phương thức GET để truyền dữ liệu mà không cần thông qua FORM

  17. Ví dụ File: GET.HTM <HTML> <HEAD> <TITLE>Input data</TITLE> </HEAD> <BODY> <IMG SRC=“images/N72.jpg”><br> <A HREF=‘chitiet.php?Ma=N72’>Xem chi tiết</A> </BODY> </HTML>

  18. Ví dụ (tt) File: CHITIET.PHP <HTML> <HEAD> <TITLE>Input data</TITLE> </HEAD> <BODY> <?php echo "Ma dien thoai la " . $_GET["Ma"]; ?> </BODY> </HTML>

  19. Truyền/Nhận qua Phương thức POST • Tham số truyền đi được ẩn bên trong FORM • Nhận dữ liệu thông qua biến toàn cục của PHP • $_POST[“FieldName”] • $_REQUEST[“FieldName”]

  20. Phương thức POST – Ưu khuyết điểm • Ưu điểm • Bảo mật hơn phương thức GET • Không giới hạn dung lượng dữ liệu truyền đi • Khuyết điểm • Kết quả trang web trả về không thể bookmark • Có thể gây ra lỗi nếu người dùng muốn quay lại trang kết quả (nhấn nút Back hoặc Refresh) do bị expired • Dữ liệu có thể không truyền đi được do vấn đề về security

  21. Cơ chế Upload File Thiết kế Form để Upload tập tin Mảng $_FILES và xử lý tập tin upload trên server Vấn đề quyền truy cập tập tin trên server Nội dung 6 Kỹ thuật gửi tập tin

  22. Cơ chế Upload File Internet or Intranet Yêu cầu gọi trangxlupload.php Webserver file Website ABC PHP Temp Di chuyển / Sao chép Diskdriver

  23. Thiết kế Form để Upload File • Thiết lập thuộc tính Form • Method = POST • Enctype = multipart/form-data uploadForm.php

  24. Mảng $_FILES • Là một mảng 2 chiều, chứa tập hợp các thông tin liên quan đến các tập tin được upload lên web-server trong một lần gọi dịch vụ web. fileAssigment1 fileAssigment2 fileAssigment3 fileAssigment4 fileAssigment5 $_FILES[……]

  25. Mảng $_FILES $_FILES[……] Lỗi phát sinh khi truyền tập tin lên server VD: 0, 1, 2 Tên file và phần mở rộng của file VD: 9912001.png Kích thước của file (tính theo Byte) VD: 4500 Đường dẫn lưu tạm tập tin upload trên server VD: c:\xamp\tmp\phpA897x0.tmp Kiểu của file theo chuẩn MINE VD: image/png

  26. Xử lý tập tin upload trên server • Sau khi tập tin đã được truyền xong cho server : • Kiểm tra lỗi • Kiểm tra ràng buộc (kích thước, kiểu tập tin) • Đặt tên mới cho tập tin (nếu cần) • Sao chép / di chuyển tập tin về thư mục Website • Một số hàm booleanis_uploaded_file(string filePathname) booleancopy(string filePathname, stringdest) booleanmove_uploaded_file(string filePathname, stringdest)

  27. uploadForm.php uploadManager.php

  28. Vấn đề về quyền truy cập File Cấp quyền cho thư mục /upload PHP Warning: move_uploaded_file(upload/14.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in. Account IUSR_XXX • Lưu ý : • Chỉ cấp quyền ghi cho thư mục cần thiết • Không cấp quyền ghi cho thư mục WebRoot

  29. Nội dung 7 Kết nối dữ liệu Mysql

  30. Các bước thao tác CSDL trong PHP • Kết nối với CSDL • Xây dựng câu truy vấn dữ liệu • Thực thi câu truy vấn • Xử lí kết quả trả về từ câu truy vấn SELECT • Ngắt kết nối với CSDL

  31. 1. Tạo Kết nối CSDL • Kết nối MySQL và Chọn CSDL resourcemysql_connect(stringhost, stringLoginName, stringpassword) intmysql_select_db(stringdbName, resourceconnection) Connection Application Database <?php $connection = mysql_connect(“localhost",“root”,“root"); mysql_select_db(“TestDB", $connection); ?>

  32. 2. Xây dựng câu truy vấn (tt) $sUserName = “admin”; $sPassword = “123”;  $strSQL ?

  33. SELECT [Liệt kê thuộc tính] FROM [Danh sách các bảng] WHERE [ĐK Kết+lọc] Group by [Thuộc tính Gom nhóm] Order by [Thuộc tính sắp thứ tự] HAVING [ĐK trên nhóm]

  34. 3. Thực thi câu truy vấn 011010011 011010011 Connection resourcemysql_query(stringSQL_cmd, resourceconnection) Application Database Query <?php $strSQL = “INSERT INTO Users (UserName, Password) VALUES (‘admin',‘123‘)”; mysql_query($strSQL); ?> Insert Delete Update <?php $strSQL = “SELECT * FROM Users”; $result=mysql_query($strSQL); ?> Select

  35. Hiển thị dữ liệu trả về Sử dụng hàm $row = mysql_fetch_array($result) Số lượng FIELD $num = mysql_num_fields($result); Truy cập đến từng FIELD echo $row[“UserName”]; Hoặc echo $row[0]; cursor 4. Xử lý kết quả trả về Ví dụ: CSDL BookstoreDB – Bảng T_Users Xuất records từ CSDL ra trang HTML

  36. 5. Ngắt kết nối dữ liệu boolmysql_close(resource connection) ; Tự động thực thi khi kết thúc mã lệnh nhờ cơ chế tự động thu rác (garbage collector) – PHP4,5

  37. Một số vấn đề - MySQL & Font Unicode • Font UNICODE Encode Decode <?php mysql_query(“set names ‘utf-8’”); ?>

  38. rowsPerPage Phân trang dữ liệu offset numRows maxPage pageNum

  39. Phân trang dữ liệu • Trường hợp dữ liệu lấy về có quá nhiều mẫu tin (hiển thị bảng quá dài) • Chia dữ liệu hiển thị trên nhiều trang • Tổng số kết quả trả về:$numRows • Số kết quả hiển thị trên 1 trang:$rowsPerPage • Tổng số trang hiển thị: $maxPage $maxPage = ceil($numRows / $rowsPerPage); • Số thứ tự trang hiển thị:$pageNum = 1,2,… • Chỉ số kết quả bắt đầu trong trang thứ $pageNum: $offset = ($pageNum - 1) * $rowsPerPage;

  40. Phân trang dữ liệu (tt) • Các bước thực hiện phân trang • Tính các thông số phân trang ($rowsPerPage, $pageNum, $offset) • Lấy thông tin cần hiển thị ($numRows) • Hiển thị thông tin của trang hiện tại ($offset, $rowsPerPage) • Tạo liên kết chỉ đến các trang ($maxPage $pageNum) • Xem Ví dụ (1) Select * From T_Book (2) Select * From T_Book LIMIT $offset, $rowsPerPage

More Related