Phương thức GET, POST và COOKIES, Session trong PHP

ppt 51 trang phuongnguyen 8570
Bạn đang xem 20 trang mẫu của tài liệu "Phương thức GET, POST và COOKIES, Session trong PHP", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptphuong_thuc_get_post_va_cookies_session_trong_php.ppt

Nội dung text: Phương thức GET, POST và COOKIES, Session trong PHP

  1. CHƯƠNG 5 PHƯƠNG THỨC POST, GET COOKIE VÀ SESSION TRONG PHP 1
  2. Giới thiệu ⚫ Dữ liệu của người dùng từ trình duyệt sẽ được gửi lên máy chủ dưới dạng từng cặp biến=giá_trị và có thể đi theo 4 đường khác nhau. Tuỳ theo từng con đường cụ thể, trên máy chủ ta cũng có các cách khác nhau để lấy dữ liệu được gửi lên 4 con đường đó là: GET, POST và COOKIES, Session. Vậy GET, POST và COKIES, Session là gì? 2
  3. Cơ chế truyền nhận dữ liệu ⚫ Trang web nhập dữ liệu: • Sử dụng đối tượng • Nhập dữ liệu thông qua các • Thực hiện việc truyền dữ liệu thông qua Push button Submit 3
  4. Cơ chế truyền nhận dữ liệu (tt) ⚫ Trang nhận dữ liệu (URL) sử dụng các biến toàn cục của PHP $_POST[“NameOfControl”] $_GET[“NameOfControl”] $_REQUEST[‘‘NameOfCotrol’’]; 4
  5. Trang nhập dữ liệu (login.php) User name Pass word 5
  6. Giao diện trang nhập dữ liệu 6
  7. Trang nhận dữ liệu (main.php) "; echo "Pass word:".$_GET["PASS"]." "; ?> 7
  8. Trang nhận dữ liệu 8
  9. Truyền dữ liệu bằng phương thức Get ⚫ Dữ liệu gửi từ trình duyệt lên qua phương thức GET là phần dữ liệu được nhập trực tiếp theo sau địa chỉ URL do trình duyệt gửi lên, được phân biệt với tên file script bằng dấu hỏi chấm (?) ⚫ Ví dụ: khi ta gõ vào trình duyệt địa chỉ URL sau: Khi đó, trình duyệt sẽ gửi theo địa chỉ trên một cặp biến = giá trị, trong đó biến có tên là TOPIC_ID và giá trị là 161 (TOPIC_ID=161). 9
  10. Truyền dữ liệu bằng phương thức Get ⚫ Chúng ta cũng có thể đưa lên nhiều cặp biết=giá_trị bằng cách phân cách chúng bởi dấu &: =Reply&TOPIC_ID=161&FORUM_ID=2 0 Với địa chỉ URL trên, chúng ta sẽ gửi lên 3 cặp biến=giá_trị theo phương thức GET, đó là: method=Reply, TOPIC_ID=161 và FORUM_ID=20. 10
  11. Truyền dữ liệu bằng phương thức Get ⚫ Khi trình duyệt gửi các thông tin này lên máy chủ, PHP sẽ tự động sinh ra một mảng có tên là $_GET[] để nắm giữ tất cả các cặp biến và giá trị đó, trong đó, chỉ số của mảng chính là một chuỗi mang tên của tên biến và giá trị của chỉ số đó chính là giá trị của biến do trình duyệt gửi lên. Ví dụ, với địa chỉ URL sau: Reply&TOPIC_ID=161&FORUM_ID=20 11
  12. Truyền dữ liệu bằng phương thức Get ⚫ PHP sẽ tự động sinh ra một mảng $_GET có nội dung sau: • $_GET["method"] = "Reply" // tương ứng với cặp method=Reply • $_GET["TOPIC_ID"] = 161 // tương ứng với cặp TOPIC_ID=161 • $_GET["FORUM_ID"] = 20 // tương ứng với cặp FORUM_ID=20 12
  13. Nhận dữ liệu bằng phương thức GET ⚫ Nhận dữ liệu thông qua biến toàn cục của php $_GET[“NameOfControl”] $_REQUEST[“NameOfControl”] 13
  14. Ví dụ 1 ⚫Trang “get.php” Untitled Document 14
  15. Ví dụ 1(tt) ⚫Trang lấy dữ liệu (chitietsach.php) Untitled Document 15
  16. Ví dụ 2 16
  17. Chạy ví dụ 2 ⚫ Ta lưu ví dụ trên với tên file welcome.php ⚫ Sau đó ta bật trình duyệt và gõ vào địa chỉ Kết quả? 17
  18. Phương thức POST ⚫ Post là phần dữ liệu được gửi qua các form HTML có method ="POST" ⚫ Lấy dữ liệu: $_POST[‘‘NameOfControl’’] ; $_REQUEST[‘‘NameOfCotrol’’]; 18
  19. Ví dụ 1 User Name: Password: Sex: Male Female window.open(' "; //header('Location: ; else echo "không"; ?> 19
  20. Chạy Ví dụ 1 ⚫ Khi người dùng nhập user name là : admin. password là : 12345 và chọn sex là Male, khi đó, mảng • $_POST sẽ có các phần tử sau: • $_POST["T1"] = admin • $_POST["T2"] = 12345 $_POST["sex"] = 1 20
  21. Ví dụ 2 _ Giải phương trình bậc 1 Nhập a: Nhập b: <?php if(isset($_POST[‘B1’])&&($_POST[‘B1’]==‘Tinh’)) { $a=0; $b=0; if (isset ($_POST["a"])) { $a =$_POST["a"]; } if (isset ($_POST["b"])) { $b =$_POST["b"]; 21 }
  22. Ví dụ 2 _ Giải phương trình bậc 1 if ($a Nghiem la: " . -$b/$a;//Chỗ này là -$b/$a } else { if ($b==0) { echo " Vo so nghiem"; } else { echo " Vo nghiem"; } } ?> 22
  23. Kết quả 23
  24. Ví dụ 24
  25. Ví dụ (tt) + - * 25
  26. Ví dụ (tt) \   26
  27. Ví dụ (tt) document.form1.t3.value=$kq "; ?> 27
  28. Kết quả Ví dụ 28
  29. Khi nào dùng GET, POST ⚫ Phương thức GET: • Nhược điểm: • Không thích hợp để truyền dữ liệu có tính bảo mật • Dung lượng dữ liệu truyền đi có giới hạn (tối đa là 100 ký tự) • URL submit được lưu lại trên Server • ưu điểm: • Có thể giả lập phương thức GET để truyền dữ liệu mà không cần dùng FORM 29
  30. Khi nào dùng GET, POST (tt) ⚫ Phương thức POST: • Ưu điểm: • Bảo mật hơn phương thức GET • Không giới hạn dữ liệu truyền đi • Nhược điểm: • Có thể gây ra lỗi nếu người dùng muốn quay lại trang kết quả (khi nhấn nút back, hoặc refresh) do bị exprired • Dữ liệu có thể không thể truyền đi do vấn đề Security 30
  31. Php và html "; echo " "; echo " "; echo " "; if(isset($HTTP_POST_VARS["Submit"])&&($HTTP_POST_VARS ["Submit"]=="OK")) echo "Ban nhan OK"; if(isset($HTTP_POST_VARS["reset"])&&($HTTP_POST_VARS[" reset"]=="Cancel")) echo "ban nhan can cel"; ?> 31
  32. Kết quả 32
  33. Ví dụ java2s.com Perl.com Homepage Tools 33
  34. Ví dụ java2s.com Perl.com java2s.com 34
  35. Kết quả 35
  36. Ví dụ _ thêm mục chọn vào combo New Page 1 36
  37. Ví dụ (tt) item 1 Item 2 37
  38. Kết quả 38
  39. Cookie ⚫ Là 1 đoạn dữ liệu được truyền đến browser từ server, đoạn dữ liệu này sẽ được browser lưu trữ (trong memory hoặc trên đĩa) và sẽ gởi ngược lên lại server mỗi khi browser tải 1 trang web từ server ⚫ Những thông tin được lưu trữ trong cookie phụ thuộc vào website trên server 39
  40. Cookie ⚫ Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới browser. ⚫ Mỗi browser quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 browser cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau. 40
  41. Session ⚫ Là đoạn dữ liệu được lưu trên server, khi browser có yêu cầu lấy dữ liệu từ session thì server cung cấp. ⚫ website sẽ quyết định khi nào session bắt đầu và kết thúc. ⚫ Mỗi session sẽ có một định danh (ID) 41
  42. So sách giữa cookie và session ⚫ Cookie và Session đều có chung mục đích là lưu giữ data để truyền từ 1 trang web sang 1 trang web khác (trên cùng website). ⚫ Phương thức lưu trữ và quản lý data của Cookie và Session có phần khác nhau. ⚫ Cookie sẽ được lưu trữ tại browser, do browser quản lý và browser sẽ tự động truyền cookie ngược lên server mỗi khi truy cập vào 1 trang web trên server. ⚫ Dữ liệu lưu trữ trong Session được webserver quản lý ⚫ Browser chỉ truyền ID của session lên server để lấy dữ liệu khi cần 42
  43. Sử dụng Cookie hay Session? ⚫ Sử dụng Session hoặc Cookie là tuỳ vào lựa chọn của Lập trình viên, tuy nhiên Session thường được ưa chuộng hơn Cookie vì một số lý do sau: • Trong một số trường hợp Cookie không sử dụng được. Có thể browser đã được thiết lập để không chấp nhận cookie, lúc đó session vẫn sử dụng được bằng cách truyền session ID giữa các trang web qua URL, ví dụ: script.php?session=abc123. 43
  44. Sử dụng Cookie hay Session? • Lượng data truyền tải giữa browser và server: chỉ mỗi session ID được truyền giữa browser và server, data thực sự được website lưu trữ trên server. • Bảo mật: càng ít thông tin được truyền tải qua lại giữa browser và client càng tốt, và càng ít thông tin được lưu trữ tại client càng tốt. 44
  45. SỬ DỤNG COOKIE TRONG PHP ⚫ Sử dụng Cookie trong PHP: ⚫ Để đặt (set) cookie: $_COOKIE[tên_cookie] = giá_trị;. • Và để đọc (get) lại giá trị của cookie:$_COOKIE[tên_cookie]. 45
  46. Ví dụ: tạo trang “a.php” Trang a gia tri gởi lên cookies: qua trang b 46
  47. Tạo trang “b.php” Trang b qua trang a 47
  48. SỬ DỤNG SESSION TRONG PHP ⚫ Đầu tiên, khởi tạo Session bằng cách gọi hàm: session_start() • Đăng ký biến session Session_register(tên biến) • Đặt giá trị cho session: $_SESSION[tên_session] = giá_trị; • Đọc giá trị từ session: $_SESSION[tên_session] 48
  49. SỬ DỤNG SESSION TRONG PHP • Hủy tất cả các dữ liệu trong session session_destroy(); • Hủy tất các biến trong session session_unset(); • Hủy 1 biến trong session session_unregister(tên biến) 49
  50. Ví dụ tạo trang s_a.php a.php Gia tri cua session da duoc gan: username = guest time = Click de kiem tra. 50
  51. Tạo trang “s_b.php” Untitled Document Giá trị session lấy được : username = time = 51