09/10/2018, 22:58

..:: Php Session ::..

Minh muốn hỏi mọi người một vấn đề về Session trong PHP.

Thứ nhất mình có một trang login với hai textbox, một username và một cho password.
sau khi người dùng nhấn nút Login=> kiểm tra trong Database nếu đúng thì đăng ký một bến session :
vd : $username = $_POST["username"];
session_register("username");

Thứ hai, sau khi đăng nhập trình duyệt sẽ tự động chuyển về trang index.php
trong trang này, kiểm tra nếu biến $_SESSION["username"]; có giá trị tức là người dùng đã đăng nhập.

Vấn đề là ở chổ cứ mỗi người đăng nhập ta lại phải đăng ký lại biến $_SESSION["username"];. Như vậy có xảy ra tình trạng biến $_SESSION["username"]; bị ghi đè giá trị không ??

vì nếu một người đăng nhập thôi thì không sao, nhưng đồng thời một lúc nhiêud người đăng nhập thì biến $_SESSION["username"]; sẽ bị ghi đè hay là một biến $_SESSION["username"]; mới hoàn toàn khác. nếu là khác thì làm sao kiểm tra được tên người dùng ?????
Xin mọi người giúp đở
dan_mien_que viết 01:00 ngày 10/10/2018
không có chuyện $_SESSION['username'] bị ghi đè giá trị lên nhau theo cách gọi của bạn theo mình biết. Bạn cứ an tâm dùng SESSION, server handle nó đủ thông minh để không ghi đè lên nhau.
livingdeath viết 01:14 ngày 10/10/2018
Nói như trên là chưa đủ . Biến session là biến được tạo ra ở trình duyệt của bạn. Nó ko hề được tạo ra trên server, nên dù hàng tỉ người cùng đăng nhập cũng ko xảy ra tình trạng ghi đè biến.
luzhy viết 01:01 ngày 10/10/2018
- Mỗi người khi xem website. Nó sẽ cấp cho 1 session. Nó có cả 1 thư mục session. Trong cái thư mục đó có nhiều file mang tên session. Từ những file này sẽ lưu thông tin của từng session. Vì thế bạn không phải lo bị ghi đè.

- Tôi thắc mắc sao bạn không thử làm mà lại hỏi. Bạn thử làm thì chắc bạn sẽ không hỏi câu này
NsT viết 01:02 ngày 10/10/2018
Quote Được gửi bởi livingdeath
Nói như trên là chưa đủ . Biến session là biến được tạo ra ở trình duyệt của bạn. Nó ko hề được tạo ra trên server, nên dù hàng tỉ người cùng đăng nhập cũng ko xảy ra tình trạng ghi đè biến.
SESSION lưu trên server, COOKIE mới lưu tại máy của Client
dan_mien_que viết 01:09 ngày 10/10/2018
Tôi đồn ý với NsT, tôi nói server handles SESSION ở trên sửa lưng tôi. Server handle all SESSION variables.

Thực ra , session cũng dùng cookie, nếu client web browse disable cookie, thì server nó sẽ tự động handle session variables. Vì vậy có người muốn chắn ăn không sợ user disable cookie, họ tránh dùng cookie và họ dùng session.
cuuchienbinh viết 01:08 ngày 10/10/2018
Khi bạn connect đến server, server sẽ cho bạn 1 biến có giá trị duy nhất, đó là session.LCID, còn giá trị session("username") thực sự nằm trong cookie
minhpippi viết 01:00 ngày 10/10/2018
Cho tớ hỏi thế này:

Tớ đang viết 1 class authentication, dùng session lưu giá trị.
Session ID đc tạo ra trên cơ sở nào ? IP hay browser hiện tại của user ? vì mỗi lần tắt thử trình duyệt và mở cửa sổ trình duyệt khác đều fari login lại.

Mình có xem mã của VBB thấy là VBB dùng session lưu vào SQL, nhưng khi đóng mở browser như trên đều ko phải login lại ? Như vậy VBB dugnf đồng thời cả session và cookie ??
Bài liên quan
0