Chào mọi người, em đang học PHP phần authen users thì gặp 1 vấn đề về session. Cụ thể là PHPSESSID là cookie có hạn expire session, tuy nhiên khi em tắt trình duyệt, thậm chí restart máy, PHPSESSID vẫn như cũ (trước và sau khi restart) giống nhau. Theo em được biết thì khi em tắt trình duyệt thì PHPSESSID đáng ra phải mất và tạo cái mới. Em đang dùng Edge, em có thử Chrome thì nó đúng lí thuyết, mỗi ông edge này có vấn đề, vậy làm sao để sửa lỗi này ạ? Em cảm ơn.
Hỏi về Session trong PHP (PHPSESSID)
Bạn chưa cần quan tâm gì đến cái PHPSESSID này trừ khi bạn đang quản trị máy chủ, cấu hình PHP để xử lý một số thứ đặt biệt. Đứng về mặt người dùng, lập trình thông thường, viết phần mềm nền web với PHP có thể chạy được trên shared hosting, thì việc đăng nhập của bạn có thể dùng Cookie nếu muốn tắt trình duyệt đi mở lại vẫn còn duy trì đăng nhập hoặc dùng Session nếu muốn đóng trình duyệt là kết thúc luôn phiên đăng nhập đó. Hoặc phối hợp cả hai Cookie và Session luôn để tận dụng việc an toàn của Session và sống lâu của Cookie.
Đừng hiểu nhầm là Session được lưu tường minh trong PHPSESSID nhé, PHPSESSID chỉ là mẩu thông tin được PHP tạo ra, giúp nó nhận diện được Session bạn đang dùng lưu trên server tương ứng với cái nào phía client, Nói chung, người lập trình không cần can thiệp vào PHPSESSID làm gì.
Còn trình duyệt PHP xử lý sao với cái PHPSESSID là mặc kệ PHP, bạn không nên dùng PHPSESSID như là một Cookie thông thường. Bạn đang định làm gì với nó? Đừng nói bấm F12 thấy nó hiện lên thì khó chịu rồi muốn dẹp nó đi, đó không phải là lý do đáng để mất thời gian, chỉ cần đọc trên php.net xem nó là gì là được Bạn chỉ quan tâm là việc bạn dùng Cookie hoặc Session đang gặp vấn đề gì, cần xử lý ra sao.
Đúng là nó chưa phải vấn đề đáng để em quan tâm hiện giờ. Em chỉ có thắc mắc tại sao trên Edge, khi tắt trình duyệt đi mở lại thì phpsessid vẫn như cũ, trong khi chrome thì lại được tạo cái mới. Điều này dường như không đúng với setting default của php, vì default thì tắt trình duyệt sẽ xoá phpsessid này.
Nếu trên edge không hoạt động giống như chrome khi bạn tắt trình duyệt thì bạn có thể nghĩ theo các hướng sau:
Hoặc là bạn chưa tắt hẳn edge hoặc windows không cho phép bạn làm điều đó. Thao tác tắt chỉ ẩn khỏi mắt bạn chứ không hề tắt đi
Hoặc là edge nó không tuân thủ theo specs. Không tự xoá session cookie.
Cho dù lí do là gì thì bạn với tư cách là lập trình viên web cũng không nên tin tưởng trình duyệt sẽ làm gì đó hộ bạn và giải pháp bạn sử dụng cũng không nên phụ thuộc vào trình duyệt để thực hiện