Hướng dẫn dùng starsession videos trong PHP
Sử dụng được session và hiểu về nó là điều quan trong trong lập trình web, hôm nay mình sẽ giới thiệu về cách sử dụng session cơ bản. Bài viết được dịch từ chương 28 của quyển PHP Notes For Professionals. Show 1. session_start() optionsBắt đầu với PHP session, chúng ta có thể truyền vào 1 mảng với session-based php.ini options tới hàm sessionstart Ví dụ 1:
Ở bản này cũng giới
thiệu một setting mới trong Ref: https://wiki.php.net/rfc/session-lock-ini 2. Sesssion lockingChúng ta đều biết rằng PHP ghi session data vào file ở phía server. Khi 1 request được tạo tới php script (cái mà khởi tạo session qua session_start()), PHP khóa session file để block hoặc đợi những request khác đang đến đối với cùng session_id để hoàn thành nó, bởi vì những request khác có thể bị nghẽn trong session_start cho đến khi hoặc trừ khi session file đã bị khóa không được bỏ ra. Session file vẫn bị khóa đến khi script được hoàn thành hoặc session được đóng bằng tay. Để tránh trường hợp ví dụ như tránh nhiều request bị block, chúng ta có thể khởi tạo session và đóng sesion cái mà sẽ bỏ khóa từ session file và cho phép tiếp tục các request còn lại. Ví dụ 2:
Giờ chúng ta sẽ là nếu session bị đóng thì làm sao để đọc được những giá trị trong session đó, tuy nhiên dù sau khi session bị đóng thì session vẫn còn. Do đó, chúng ta vẫn đọc được session data. Từ php >= 7.0, chúng ta có thể có read_only session, read_write session, lazy_write sesion, do đó nó ko yêu cầu cần phải sử dụng sessionwriteclose() 3. Manipulating session dataBiến $_SESSION là 1 array, và chúng ta có thể nhận được và xử lý nó như 1 mảng thông thường. Ví dụ 3:
Chú ý rằng nếu bạn lưu 1 object trong session, nó sẽ nhận và chỉ khi bạn có 1 class autoloader hoặc bạn đã load class đó. Các trường hợp khác, object sẽ lưu dưới dạng
4. Destroy an entire sessionNếu đã lấy được session, ta sẽ muốn có thể hủy bỏ được nó. Điều này được làm dễ dàng với session_destroy() Ví dụ:
Sử dụng
sessiondestroy khác với sử dụng những thứ như
5. Safe Session Start With no ErrorsNhiều lập trình viên gặp phải vấn đề này khi làm việc với dự án lớn, đặc biết nếu họ làm việc trên những nền tảng CMS dựa trên plugin, addons, components ... Đây là solution cho khởi tạo session an toàn mà ta sẽ kiểm tra phiên bản PHP đầu tiên để cover tất cả các phiên bản và tiếp đó thì mới khởi tạo session. Nếu session không tồn tại thì ta sẽ khởi tạo session an toàn. Nếu session tồn tại thì sẽ không có gì xảy ra cả. Ví dụ:
Nó sẽ giúp bạn không bị session_start error 6. Session nameKiểm tra nếu session cookie đã được khởi tạo chưa Session name là tên củ cookie được sử dụng để lưu session. Bạn có thể sử dụng nó để phát hiện nếu cookie cho session đã được khởi tạo cho người dùng.
Chú ý rằng phương thức này thường không hữu dụng trừ khi bạn không muốn tạo cookie không cần thiết. Thay đổi session name Bạn có thể cập nhật session name bằng cách gọi
Nếu không có tham số truyền vào thì session name hiện tại sẽ được trả về. |