Phiên là một cách để lưu trữ thông tin [trong các biến] được sử dụng trên nhiều trang. Các biến phiên được lưu trữ trên máy chủ. Theo mặc định, các biến phiên kéo dài cho đến khi người dùng đóng trình duyệt
Tạo một phiênHàm session_start[] phải là thứ đầu tiên trong tài liệu của bạn. Mọi tập lệnh trên trang web của bạn bắt đầu cùng một phiên sẽ có thể truy cập vào cùng một nhóm biến phiên. Cuộc gọi đến session_start để tạo một phiên mới đơn giản như
session_start[];Nhận các giá trị biến phiên PHP
Hầu hết các phiên đặt khóa người dùng trên máy tính của người dùng trông giống như thế này. 765487cf34ert8dede5a562e4f3a7e12. Khi một phiên được mở trên một trang khác, nó sẽ quét máy tính để tìm khóa người dùng. Nếu khớp thì truy cập phiên đó, nếu không thì bắt đầu phiên mới
Sửa đổi biến phiên PHPDữ liệu phiên được lưu trữ trong biến siêu toàn cục
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];1. Nó là một mảng kết hợp và có thể được sử dụng để lưu trữ và truy cập thông tin như thế này
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];Kết thúc phiên PHP
Khi người dùng yêu cầu đăng xuất khỏi một trang web, đó là lúc kết thúc một phiên. Để xóa tất cả các biến phiên chung và hủy phiên, hãy sử dụng
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];2 và
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];0
//Put this in a PHP page where you wish to end the session //Note - the page must use session_start[] before this code will work session_unset[]; session_destroy[];
Thông tin thêm về phiên PHP. https. //www. w3schools. com/php/php_sessions. asp
Kết nối cơ sở dữ liệu PHP
Thảo luận này được tóm tắt từ PHP MySQL Manual chính thức
Trong PHP, quyền truy cập cơ sở dữ liệu được cung cấp thông qua API mở rộng cho ngôn ngữ PHP cơ sở. Các API này cho phép bạn kết nối với cơ sở dữ liệu bằng trình kết nối, sau đó gửi và nhận tin nhắn đến cơ sở dữ liệu bên ngoài thông qua kết nối. Mỗi hệ thống cơ sở dữ liệu mà bản cài đặt PHP hỗ trợ phụ thuộc vào trình điều khiển dành riêng cho loại cơ sở dữ liệu đó
Định nghĩa cho các thuật ngữ được đánh dấu
- API. Giao diện lập trình ứng dụng. Tập hợp những thứ cho phép bạn thực hiện một tác vụ từ ngôn ngữ lập trình. Các API lập trình cơ sở dữ liệu trong PHP được hiển thị bởi các tiện ích mở rộng PHP. PHP có cả API thủ tục và OO. API OO được ưa thích bởi cộng đồng nhà phát triển PHP
- Kết nối. Phần mềm cho phép ứng dụng cơ sở dữ liệu của bạn kết nối với máy chủ cơ sở dữ liệu MySQL. Có thể sẽ cung cấp các cách cơ bản để gửi các lệnh SQL, có thể có các thư viện phủ lên nó để thực hiện các tác vụ khó dễ dàng hơn
- Người lái xe. phần mềm biết cách giao tiếp với một loại máy chủ cơ sở dữ liệu cụ thể. Trình điều khiển thường được viết trên thư viện bên ngoài được viết bằng ngôn ngữ cấp thấp như C, vd. Thư viện máy khách MySQL hoặc Trình điều khiển bản địa MySQL. Trình điều khiển cài đặt PHP cung cấp được chọn tại thời điểm biên dịch. PDO. lệnh getAvailableDrivers có thể cung cấp cho bạn danh sách đầy đủ các trình điều khiển có sẵn cho bạn trên máy chủ của chúng tôi
- Sự mở rộng. trong PHP, đây là bất kỳ thứ gì bổ sung chức năng cho ngôn ngữ PHP cốt lõi. Các tiện ích mở rộng có thể hiển thị trực tiếp API mới cho lập trình viên PHP - mysqli và PDO thực hiện việc này. Các tiện ích mở rộng khác thì không - thay vào đó, tiện ích mở rộng trình điều khiển PDO MySQL cung cấp giao diện cho PDO. Sau đó, lập trình viên có thể sử dụng PDO để tương tác với các kết nối MySQL dưới dạng cơ sở dữ liệu chung
Tùy chọn API PHP MySQL
PHP đi kèm với hai API cơ sở dữ liệu chính cho MySQL- phần mở rộng mysqli. một phiên bản cải tiến của API mysql gốc cho PHP. Các cải tiến bao gồm hỗ trợ gỡ lỗi và lập trình hướng đối tượng cùng nhiều tính năng hay khác. API này mạnh mẽ và dành riêng cho MySQL
- Đối tượng dữ liệu PHP [PDO] với phần mở rộng trình điều khiển PDO MySQL. PDO được hướng đối tượng theo thiết kế. Nó cung cấp một API nhất quán để làm việc với các máy chủ cơ sở dữ liệu khác nhau. Nó cho phép bạn viết mã cơ sở dữ liệu sạch và di động, nhưng chỉ cho phép các tính năng cơ sở dữ liệu chung chung cho nhiều loại cơ sở dữ liệu. Logic để sử dụng cơ sở dữ liệu sẽ không thay đổi, nhưng bạn vẫn có thể phải viết lại các lệnh truy vấn và kết nối của mình để phù hợp với cú pháp và tính năng của cơ sở dữ liệu
Cả hai API đều có hiệu suất tương tự nhau, vì vậy chúng tôi sẽ sử dụng PDO cho lớp học và phòng thí nghiệm để giúp bạn áp dụng các kỹ năng của mình vào các hệ thống Cơ sở dữ liệu khác
Sử dụng PDO
Bạn nên tự làm quen với tất cả các chức năng được thảo luận ở đây bằng cách đọc các mục và ví dụ tương ứng trong Hướng dẫn sử dụng PDO
Bạn cần chuẩn bị các thông tin sau trước khi thiết lập kết nối cơ sở dữ liệu MySQL trong PHP
- Địa chỉ máy chủ của cơ sở dữ liệu MySQL.
Cho đến tháng 9, máy chủ WebDev và máy chủ MySQL là cùng một máy, vì vậy bạn sử dụng//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];
1 làm địa chỉ máy chủ cơ sở dữ liệu.
Trong tương lai, chúng tôi sẽ sử dụng máy chủ MySQL chuyên dụng.//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];
2 - Tên cụ thể của cơ sở dữ liệu sẽ chạy các lệnh SQL của bạn
- Tên tài khoản cơ sở dữ liệu MySQL của bạn
- Mật khẩu cơ sở dữ liệu MySQL của bạn
// [1] Try to create a MySQL database connection: try { $db = new PDO['mysql:host=localhost; dbname=temp8", "temp8", "password"]; // Since PHP 8.0.0 PDO throws exceptions by default for all errors. // If you are using an older version of PHP, errors are silent // you can enable them with this line $conn->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION]; } // [2] Catch exception errors. // If you don't catch exceptions, the default action is to exit the script // and print a back trace that might reveal security details. catch [PDOException $e] { die ["PDO Error >> " . $e->getMessage[] . "\n
"]; } // [3] Run your SQL commands in PHP... $queryResult = ....; // some query ...; // fill with actual code to ...; // handle the query // [4] Always close the database connection // To do this set all variables that refer to the PDO instance to null $queryResult = null; //Close queries $db = null; // Close connection
Ghi chú. Bạn phải luôn nhớ đóng từng kết nối cơ sở dữ liệu mà bạn đã thiết lập sau khi hoàn thành công việc SQL của mình trong PHP
Các liên kết sau đây cung cấp thêm thông tin về quản lý kết nối PDO
- Hướng dẫn sử dụng PHP PDO. Kết nối và quản lý kết nối - https. //www. php. net/manual/en/pdo. kết nối. php
- W3Schools. PHP Kết nối với MySQL [Cuộn xuống để xem hướng dẫn PDO]. https. //www. w3schools. com/php/php_mysql_connect. asp
Tạo bảng trong MySQL
Câu lệnh CREATE TABLE được sử dụng để tạo một bảng tên là
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];3 trong MySQL
Đoạn mã sau tạo bảng trong php, bạn có thể đặt tên là CreateTable. php
Ghi chú. Không nên tạo bảng bằng PHP, đây chỉ là mục đích trình diễn
________số 8Bạn có thể chạy mã này bằng cách truy cập mã như một trang web trong trình duyệt hoặc bạn có thể thực thi mã trực tiếp trên WebDev bằng cách sử dụng lệnh
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];4 tại dấu nhắc WebDev
Dưới đây là một số liên kết về các lệnh và kỹ thuật được sử dụng để tạo bảng MySQL với PDO
- W3Schools. PHP Tạo bảng MySQL - http. //www. w3schools. com/php/php_mysql_create_table. asp
- Hướng dẫn sử dụng PHP PDO. PDO. giám đốc điều hành - https. //www. php. net/manual/en/pdo. giám đốc điều hành. php
Chèn từ PHP
Sau khi thiết lập kết nối cơ sở dữ liệu MySQL, bạn có thể sử dụng hàm
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];5 để thực thi các lệnh SQL không trả về danh sách kết quả. Trong trường hợp này, nó hoàn hảo để chèn một bản ghi mới vào bảng cơ sở dữ liệu của bạn. Hàm
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];5 trả về một số nguyên khác 0 nếu thao tác thành công, nếu không, nó trả về
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];7 hoặc một giá trị không phải Boolean đánh giá là sai trong biểu thức Boolean. Nếu thao tác chèn không thành công, bạn cần hiển thị thông báo lỗi cho người dùng ở một nơi hữu ích
Bạn có thể sử dụng đoạn mã sau để Đăng ký. php
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];3
Các liên kết sau đây cung cấp thêm thông tin về mã được sử dụng ở trên
- W3Schools. Chèn PHP - http. //www. w3schools. com/php/php_mysql_insert. asp
- Hướng dẫn sử dụng PHP PDO. PDO. truy vấn - https. //www. php. net/manual/en/pdo. truy vấn. php
- Hướng dẫn sử dụng PHP PDO. PDOStatement [được trả về bởi PDO. truy vấn] - https. //www. php. net/manual/en/class. tuyên bố. php
- Hướng dẫn sử dụng PHP PDO. Tuyên bố PDO. rowCount - https. //www. php. net/manual/en/pdostatement. đếm số hàng. php
- Sổ tay PHP. Kết hợp biểu thức chính quy - http. //php. net/thủ công/vi/chức năng. trận đấu trước. php
Truy vấn từ PHP
Mẫu truy vấn PDO trên W3 Schools phức tạp hơn một chút so với các ví dụ của
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];8, vì vậy bạn có thể nghiên cứu mẫu PDO đơn giản hóa này trước khi nghiên cứu mẫu của họ. Nó sẽ hoạt động với bảng sinh viên được tạo bởi
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];9 trong phòng thí nghiệm MySQL
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];6
Bạn có thể sử dụng đoạn mã sau để đăng nhập. php
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];7
Các liên kết sau đây cung cấp thông tin chi tiết cho nhiều hoạt động cơ sở dữ liệu hơn, chẳng hạn như chọn, cập nhật và xóa
Truy vấn PHP và hiển thị. http. //www. w3schools. com/php/php_mysql_select. asp
Cập nhật PHP. http. //www. w3schools. com/php/php_mysql_update. asp
Xóa PHP. http. //www. w3schools. com/php/php_mysql_delete. asp
Nhiệm vụ phòng thí nghiệm cũ
Bước 0. Thực hiện tất cả công việc trong phòng thí nghiệm của bạn trong thư mục con Lab10 trên trang web của bạn - đây là một trang con nhỏ của trang web chính của bạn và chỉ mục. php bạn tạo không nên thay thế trang chủ của bạn
Bước 1. Tạo bảng
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];3 nếu bạn chưa làm như vậy
Bước 2. đăng ký của bạn. php thu thập thông tin Người dùng
Bước 3. đăng nhập của bạn. php thu thập thông tin đăng nhập của người dùng
Để thuận tiện cho bạn, đây là mã cho chỉ mục. php, Đăng xuất. php.
Hoặc sử dụng cái này. zip chứa tất cả PHP và Javascript bắt đầu cho bài tập này. Lab10Files_PDO. nén
Bước 4. Mỗi trang bạn viết ngày hôm nay nên kiểm tra xem có phiên nào đang diễn ra không. Bạn có thể kiểm tra
//Put this in a PHP page where you wish to end the session //Note - the page must use session_start[] before this code will work session_unset[]; session_destroy[];1 để biết phương pháp. Nếu một phiên đang diễn ra, có thể không cho phép ai đó đăng ký hoặc đăng nhập, vì vậy các trang đó sẽ chuyển hướng đến chỉ mục. thay vào đó là php
Việc cung cấp một trang đăng xuất gọi hàm
//Put this on one PHP page: session_start[]; // $_SESSION only available when session is started $_SESSION["myData"] = "Testing, testing 1.. 2.. 3..."; //Put this on another PHP page: session_start[]; // $_SESSION only available when sesion is started echo $_SESSION["myData"];0 PHP là rất quan trọng. Nếu bạn tạo nhiều tài khoản bằng trang Đăng ký thì thử chuyển đổi tài khoản nào đăng nhập bằng trang đăng nhập, bạn không thể kiểm tra trang đăng nhập sau tài khoản đầu tiên vì trang đăng nhập sẽ phát hiện phiên ở đó và lưu lại. Bạn cũng phải tạo một trang đăng xuất để xóa phiên sau đó quay lại trang đăng nhập. Ngoài ra, vì lý do bảo mật, các phiên sẽ bị hủy khi đăng xuất. Nếu người dùng quên đăng xuất, hành vi mặc định là phiên sẽ kéo dài cho đến khi đóng trình duyệt
Đặt các tệp sau vào thư mục Lab 10 của bạn. Sau đó, thêm một liên kết đến chỉ mục mới này. php trên trang chủ của bạn. Chúng tôi sẽ kiểm tra xem mỗi trang có hoạt động như mong đợi trên máy chủ trực tiếp hay không, vì vậy điều này rất quan trọng. Nén thư mục lab 10 và gửi tới Khóa học UR trước thời hạn quy định cho phần của bạn trong Khóa học UR