Giáo trình PHP nâng cao

73 66 0
Giáo trình PHP nâng cao

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài 1: Lập trình website theo mơ hình MVC Giới thiệu mơ hình MVC MVC từ viết tắt từ Model – View – Controller Đây mơ hình thiết kế sử dụng kỹ thuật phần mềm Mơ hình source code thành phần, tương ứng từ Mỗi từ tương ứng với hoạt động tách biệt mơ hình Để hiểu rõ hơn, sau phân tích thành phần: Mơ hình MVC thành phần bên MVC Model (M): Là phận có chức lưu trữ toàn liệu ứng dụng Bộ phận cầu nối thành phần bên View Controller Model thể hình thức sở liệu có đơn giản file XML bình thường Model thể rõ thao tác với sở liệu cho phép xem, truy xuất, xử lý liệu,… View (V): Đây phần giao diện (theme) dành cho người sử dụng Nơi mà người dùng lấy thơng tin liệu MVC thơng qua thao tác truy vấn tìm kiếm sử dụng thông qua website Thông thường, ứng dụng web sử dụng MVC View phần hệ thống, nơi thành phần HTML tạo Bên cạnh đó, View có chức ghi nhận hoạt động người dùng để tương tác với Controller Tuy nhiên, View khơng có mối quan hệ trực tiếp với Controller, không lấy liệu từ Controller mà hiển thị yêu cầu chuyển cho Controller mà thơi Ví dụ: Nút “delete” tạo View người dùng nhấn vào nút có hành động Controller Controller (C): Bộ phận có nhiệm vụ xử lý yêu cầu người dùng đưa đến thơng qua view Từ đó, C đưa liệu phù hợp với người dùng Bên cạnh đó, Controller cịn có chức kết nối với model Luồng tương tác thành phần MVC Ví dụ: Chức thêm viết trang quản trị website Nơi có trường nhập tiêu đề nội dung viết, đó: • View hiển thị phần nhập form tiêu đề nội dung • Controller lấy liệu từ trường gửi tới Model • Model lúc nhận liệu từ Controller để lưu trữ sở liệu Mỗi phận thực chức định, chúng có thống nhất, liên kết với tạo nên mơ hình MVC Mơ hình tương đối nhẹ Nó tích hợp nhiều tính có ASP.NET Ví dụ authentication (q trình xác thực) Luồng mơ hình MVC nào? Chúng ta hình dung, yêu cầu từ máy client gửi tới server, Controller thực nhiệm vụ tiếp nhận xử lý yêu cầu Trong trường hợp cần thiết, liên hệ Model – phận làm việc với database để hỗ trợ Khi xử lý xong yêu cầu, kết trả View Tại View tạo mã HTML thành giao diện trả hiển thị trình duyệt Ưu điểm mơ hình MVC Nhẹ, tiết kiệm băng thơng: MVC khơng sử dụng viewstate nên tiết kiệm diện tích băng thơng Khi sử dụng, người dùng sử dụng ứng dụng web cần tương tác gửi nhận liệu cách liên tục Do đó, việc giảm băng thông giúp cho website hoạt động tốt ổn định • Kiểm tra dễ dàng: Với MVC, bạn dễ dàng kiểm tra, rà sốt lỗi phần mềm trước tới tay người tiêu dùng, đảm bảo chất lượng độ uy tín cao • Chức control: Trên website ngơn ngữ lập trình CSS, HTML, Javascript có vai trị vơ quan trọng Việc sử dụng mơ hình MVC giúp bạn có control ưu việt tảng ngơn ngữ đại với nhiều hình thức khác • View size: View nơi lưu trữ liệu Càng nhiều yêu cầu thực kích thước tệp lớn Khi đó, đường truyền mạng giảm tốc độ load Việc sử dụng mơ hình MVC giúp bạn tiết kiệm diện tích băng thơng cách tối ưu • Chức Soc (Separation of Concern): Chức cho phép bạn phân tách rõ ràng phần Model, giao diện, data, nghiệp vụ • Tính kết hợp: Việc tích hợp mơ hình MVC cho phép bạn thoải mái viết code tảng website Khi đó, server bạn giảm tải nhiều • Đơn giản: Đây mơ hình với kết cấu tương đối đơn giản Dù bạn khơng có q nhiều chun mơn sử dụng Nhược điểm mơ hình MVC MVC thường sử dụng vào dự án lớn Do đó, với dự án nhỏ, mơ hình MVC gây cồng kềnh, tốn thời gian trình phát triển thời gian trung chuyển liệu Ứng dụng mơ hình MVC vào lập trình Mơ hình MVC ứng dụng nhiều ngơn ngữ lập trình khác nhau, phổ biến ứng dụng ASP.NET MVC hay PHP MVC MVC mơ hình ứng dụng nhiều lập trình Hệ thống MVC phát triển tốt cho phép phát triển front – end, back – end hệ thống mà khơng có can thiệp, chia sẻ, chỉnh sửa tập tin hai bên làm việc Việc sử dụng mơ hình tương đối đơn giản Chỉ cần hiểu rõ quy trình vận hành, nắm chức phận việc triển khai mơ hình MVC tương đối dễ dàng Xây dựng chức đăng nhập MVC Phần hướng dẫn tạo chức đăng nhập theo mơ hình MVC Bước 1: Tạo thư mục Trong thư mục này, tạo thư mục khác với tên controller, model, view tương ứng tạo trang PHP với tên index.php • new folder – controller – model – view – index.php Bước 2: Trong thư mục controller, tạo trang PHP với tên Controller viết đoạn mã sau: Bước 3: Trong thư mục model, tạo trang PHP với tên Model viết đoạn mã sau: Bước 4: Trong thư mục view, tạo hai trang PHP với tên login.php, Afterlogin.php viết đoạn mã sau: login.php

Username

Password

Login Cancle

Afterlogin.php Bước 5: Mở tệp index.php viết mã sau: Bài 2: Các kỹ thuật lập trình MySQL với PHP nâng cao Kết nối truy vấn sở liệu sử dụng PDO Giới thiệu PDO - PHP Data Objects PHP Data Objects (PDO) lớp truy xuất sở liệu cung cấp phương pháp thống để làm việc với nhiều loại sở liệu khác Khi làm việc với PDO bạn không cần phải viết câu lệnh SQL cụ thể mà sử dụng phương thức mà PDO cung cấp, giúp tiết kiệm thời gian làm cho việc chuyển đổi Hệ quản trị sở liệu trở nên dễ dàng hơn, đơn giản thay đổi Connection String (chuỗi kết nối CSDL) Chúng ta cần nắm rõ API mà PDO cung cấp làm việc với nhiều Hệ quản trị sở liệu khác MySQL, SQLite, PostgreSQL, Microsoft SQL Server, dễ dàng chuyển đổi chúng Các Hệ quản trị sở liệu (Database Management System) mà PDO hỗ trợ gồm có: Tên driver DBMS PDO_CUBRID Cubrid PDO_DBLIB FreeTDS Microsoft SQL Server / Sybase PDO_FIREBIRD Firebird PDO_IBM IBM DB2 PDO_INFORMIX IBM Informix Dynamic Server PDO_MYSQL MySQL 3.x/4.x/5.x PDO_OCI Oracle Call Interface PDO_ODBC ODBC v3 (IBM DB2, unixODBC and win32 ODBC) PDO_PGSQL PostgreSQL PDO_SQLITE SQLite and SQLite PDO_SQLSRV Microsoft SQL Server / SQL Azure PDO_4D 4D nginx: configuration successful file /etc/nginx/nginx.conf test is Nếu khơng bị lỗi gì, restart lại nginx: • sudo systemctl restart nginx Step 5: Kiểm tra Encryption Chúng ta cấu hình xong SSL cho domain Mở trình duyệt đánh https để kiểm tra Kết thấy có biểu tượng khóa trình duyệt: • https://server_domain_or_IP • Kết có warning hình dưới: Mã hóa PHP Có lẽ bạn biết nhiều MD5 SHA1 dùng để mã hóa chuỗi thơng tin đầu vào s1 cho chuỗi thông tin mã hóa s2 Về lý thuyết, khơng thể dịch ngược chuỗi s2 để liệu ban đầu, có nhiều phương pháp thuật toán làm tốt việc Hàm md5() sha1() Để mã hóa thơng tin đầu vào MD5 hay SHA1, đơn giản bạn cần dùng hàm md5() sha1() Hãy xem ví dụ sau: Để bảo mật kết hợp hàm với để tạo chuỗi mã hóa khó dịch ngược tự viết thêm số thuật toán cắt ghét chuỗi riêng bạn Hàm md5_file() sha1_file() Như tên gọi, bạn mã hóa md5 sha1 cho tập tin Chúng ta thực đoạn code mã hóa đơn giản sau: $file = 'dammio.txt'; echo 'Mã hóa MD5 tập tin ' $file ': ' md5_file($file); Hàm crc32() CRC viết tắt từ Cyclic Redundancy Check, tạm dịch “Kiểm dư chu trình”, phương pháp kiểm tra phát lỗi, sử dụng mạng số thiết bị lưu trữ để phát thay đổi tình cờ liệu truyền hay lưu trữ Hàm dùng hàm crc32() để checksum hay kiểm tra liệu nhận có bị lỗi hay hư hỏng hay khơng Hãy xét đến ví dụ sau: Hàm hash() Hàm hash cho phép mã hóa tất dạng md5, sha1,… cần dùng hàm Cú pháp: string hash (string $algo, string $data, bool $output) Trong $algo thuật tốn mã hóa (MD5, SHA1,…), $data liệu cần mã hóa, $output dạng đầu ra, = TRUE dạng liệu đầu nhị phân, = FALSE (hay mặc định) liệu đầu văn Ví dụ mã hóa chuỗi ‘dammio’ thuật toán RIPEMD (RIPE Message Digest), chủ yếu dùng mã hóa tiền ảo Bitcoin Ngoài bạn cịn có hàm crypt() password_hash() với chức mã hóa thơng tin tương tự Bài 4: Chức gửi thư điện tử cho website Giới thiệu PHP hỗ trợ cách thức gửi mail: Sử dụng gói PEAR Mail; Sử dụng hàm helper để gửi email; Sử dụng thư viện cURL Quy trình gửi nhận email: Máy chủ Máy chủ Người gửi Người nhận POP3 IMAP SMTP Ứng dụng email máy khách Ứng dụng email máy khách Phía client gửi yêu cầu đến máy chủ email thông qua giao thức SMTP Máy chủ xử lý gửi mail cho máy khách thông qua giao thức POP3 IMAP Gửi mail sử dụng PEAR Mail Để cấu hình gửi mail sử dụng PEAR Mail từ localhost, trước tiên cần cấu hình tài khoản gmail      Đăng nhập vào tài khoản Nhấn nút Settings Vào tab Forwarding and POP/IMAP Trong mục POP download đánh dấu chọn vào ô Enable POP for all mail Nhấn nút Save changes Thông số kết nối máy chủ Gmail: M M Bước 1: Nạp gói PEAR Mail  Sử dụng lệnh  Không cần copy file Mail.php vào mã nguồn ứng dụng  Tránh tạo file Mail.php khác để không trùng Bước 2: Thiết lập thông số cho đối tượng mailer mail //Ví dụ 1: Máy chủ SMTP đơn giản $option = array(); $option['host'] = 'mail.example.com'; //Ví dụ 2: Máy chủ SMTP có xác thực $option = array(); $option['host'] = 'mail.example.com'; $option['auth'] = true; $option['username'] = 'sample.user@example.com'; $option['password'] = 'ghg44463'; //Ví dụ 3: Máy chủ SMTP có xác thực bảo mật SSL $option = array(); $option['host'] = 'ssl://mail.example.com'; $option['port'] = 465; $option['auth'] = true; $option['username'] = 'sample.user@example.com'; $option['password'] = 'ghg44463'; Bước 3: Tạo đối tượng mailer Sử dụng phương thức tĩnh factory trả đối tượng mailer dùng để gửi mail $mailer = Mail::factory('smtp', $option); Bước 4: Viết mail //1 Thiết lập SMTP header $headers = array(); $headers['From'] = 'sample.user@example.com'; $headers['To'] = 'john.doe@example.com, jane.doe@example.com'; $headers['Cc'] = 'fsmith@example.org'; $headers['Bcc'] = 'jsmith@example.net'; $headers['Subject'] = 'Hello'; $headers['Content-type'] = 'text/html'; //2 Thiết lập danh sách gửi $recipients = 'john.doe@example.com, jane.doe@example.com'; $recipients = 'fsmith@example.org, jsmith@example.net'; //3 Thiết lập phần body $body = "

Hello

How are you

"; Bước 5: Gửi mail kiểm tra kết //1 Gửi mail $result = $mailer->send($recipients, $header, $body); //2 Kiểm tra kết hiển thị lỗi có if (PEAR::isError($result)) { $error = $result->getMessage(); echo htmlspecialchars($error); Gửi mail sử dụng hàm Hàm helper Gửi mail sử dụng hàm send_email require_once 'message.php'; $from = 'John Doe '; $to = 'Jane Doe '; $subject = 'How to use PEAR Mail'; $body = '

Murach PHP and MySQL book has a chapter on how to use the PEAR Mail packageto send email.

'; $is_body_html = true; try { send_email($to, $from, $subject, $body, $is_body_html); } catch (Exception $e) { $error = $e->getMessage(); echo $error; } Bài 5: Tải file hình ảnh lên website Gửi file hình ảnh đơn lên website Một PHP script sử dụng với HTML form cho phép người dùng upload file lên Server Đầu tiên file upload lên thư mục tạm thời, sau di chuyển tới đích PHP script Thơng tin trang phpinfo.php mô tả thư mục tạm thời mà sử dụng cho file upload dạng upload_tmp_dir kích thước giới hạn file upload bắt đầu dạng upload_max_filesize Các tham số thiết lập file cấu hình php.ini Tiến trình upload file theo bước sau: • Người dùng mở trang chứa HTML form text file, nút browse nút submit • Người dùng nhấn nút browse chọn file để upload từ máy local • Đường dẫn đầy đủ đến file chọn xuất trường văn bản, sau người dùng nhấn nút Submit • File chọn gửi đến thư mục tạm thời Server • PHP script, mà xác định Form Handler thuộc tính action form, kiểm tra xem file đến chưa sau chép file sang thư mục mong muốn • PHP script xác nhận thành công tới người dùng Thông thường ghi file, cần thiết cho thư mục tạm thời thư mục đích để có quyền truy cập thiết lập cho phép ghi Nếu thiết lập read-only, tiến trình thất bại Một file upload lên text file image file tài liệu Tạo upload form PHP Dưới HTML code tạo upload form Form có thuộc tính method thiết lập post thuộc tính enctype thiết lập multipart/formdata Lưu chương trình file có tên test.php htdocs, sau mở trình duyệt gõ địa http://localhost:8080/test.php cho kết quả: Tạo upload script PHP Có biến PHP toàn cục $_FILES Biến mảng mảng liên hợp giữ tất thông tin liên quan đến file tải lên Vì vậy, giá trị gán cho thuộc tính name input form upload file, PHP tạo biến sau: • $_FILES['file']['tmp_name'] − File upload thư mục tạm thời Web Server • $_FILES['file']['name'] − Tên thực file upload • $_FILES['file']['size'] − Kích thước tính theo byte file upload • $_FILES['file']['type'] − Kiểu MIME file upload • $_FILES['file']['error'] − Mã hóa lỗi liên quan đến file tải lên Ví dụ Dưới ví dụ cho phép tải hình ảnh trả kết dạng thông tin file tải lên
  • Gửi file có tên:
  • Kích cỡ file : ['type'] ?>
Kết có dạng giống hình sau: Gửi nhiều file hình ảnh lên website File name: File name: File name: File name: File name:

Ngày đăng: 03/03/2021, 10:19

Từ khóa liên quan

Mục lục

  • Bài 1: Lập trình website theo mô hình MVC

    • 1. Giới thiệu mô hình MVC

    • Luồng đi trong mô hình MVC như thế nào?

      • Ưu điểm của mô hình MVC

      • Nhược điểm của mô hình MVC

      • 2. Ứng dụng mô hình MVC vào lập trình

      • Bài 2: Các kỹ thuật lập trình MySQL với PHP nâng cao

        • 1. Kết nối và truy vấn cơ sở dữ liệu sử dụng PDO

        • 2. Kết nối và truy vấn cơ sở dữ liệu sử dụng MySQLi

        • Mở kết nối tới MySQL

          • Ví dụ (MySQLi Hướng đối tượng)

          • Ví dụ (MySQLi Thủ tục)

          • Đóng kết

            • MySQLi Hướng đối tượng:

            • MySQLi Thủ tục:

            • Insert dữ liệu

              • Ví dụ (MySQLi Hướng đối tượng)

              • Ví dụ (MySQLi Thủ tục)

              • Lấy ID của bản ghi được chèn sau

                • Ví dụ (MySQLi Hướng đối tượng)

                • Example (MySQLi Procedural)

                • Insert nhiều bản

                  • Ví dụ (MySQLi Hướng đối tượng)

                  • Ví dụ (MySQLi Thủ tục)

                  • Câu lệnh Prepared và tham số Bound

                  • Câu lệnh Prepared

                    • Ví dụ

                    • Select dữ liệu

                      • Ví dụ (MySQLi Hướng đối tượng)

                      • Ví dụ (MySQLi Thủ tục)

Tài liệu cùng người dùng

Tài liệu liên quan