KHẮC PHỤC LỖI SESSION TRONG PHP,??? CHỦ ĐỀ: GIÚP SỬA LỖI SESSION TRONG PHP

Trong bài viết Khắc phục lỗi mất session trong Codeigniter (ci) tôi đã chia sẻ cách khắc chế lỗi mất session của ci. Vào đó, vì sao mất session là không có quyền ghi trên tệp tin vào thư mục nhất thời của host. Cùng hướng giải quyết và xử lý là gửi sang lưu session vào database.

Bạn đang xem: Khắc phục lỗi session trong php,??? chủ Đề: giúp sửa lỗi session trong php

Thì hôm nay, tôi xin chia sẻ tiếp một lý do mất session vào ci nữa. Lần này lý do là do riêng lẻ tự tùy chỉnh cấu hình trình tự khởi hễ session không đúng trong cỗ core của ci.

Xem thêm: Các Bậc Trong Liên Quân Mobile Chỉ Xứng Bạc, Vàng Của Tốc Chiến?

1. Diễn đạt hiện trạng

Về lỗi này không có bộc lộ đặt trưng mang đến từng nguyên nhân. Nó chỉ có thể hiện chung chung là khi chuyển trang thì session bạn đã đăng ký bị mất.

2. Tại sao và phương pháp khắc phục

Sau một thời hạn bug điên đầu, tôi phát hiện nay một tại sao do trong cỗ core của ci cấu hình thiết lập sai trình trường đoản cú khởi động sesstion: Khởi động session chấm dứt mới tảo lại tùy chỉnh thiết lập các thông số cho session. Cụ thể như sau:

Ở file system/libraries/Session/Session.php, trên hàm __construct (hình 1)

*
Hình 1. File Sesstion.php nơi xảy ra lỗi khởi động sesstion sai trình tự

Ở hàm __construct này, tôi phát hiện hàm session_start() được hotline trước việc thiết lập các thông số cấu hình sau mang lại session sử dụng:

session_set_save_handler(array($class, "open"),array($class, "close"),array($class, "read"),array($class, "write"),array($class, "destroy"),array($class, "gc"));register_shutdown_function("session_write_close");và các thông số được hàm __construct gọi trải qua hàm _configure như sau:

ini_set("session.use_trans_sid", 0);ini_set("session.use_strict_mode", 1);ini_set("session.use_cookies", 1);ini_set("session.use_only_cookies", 1);ini_set("session.hash_function", 1);ini_set("session.hash_bits_per_character", 4);Do đó, để fix lỗi này họ thực hiện kiểm soát và điều chỉnh lại sản phẩm công nghệ tự hotline hàm session_start() như sau:

*
Hình 2. Đặt lại thiết bị tự gọi hàm session_start()

Chúng ta triển khai đem hàm session start từ địa điểm được tô red color lên địa chỉ được tô màu xanh da trời của hàm __construct trên file file system/libraries/Session/Session.php là lỗi được tương khắc phục.