09/10/2018, 23:59

làm thế nào để truyền session giửa 2 trang

tôi có 2 trang php như sau
trang1.php
<?php
session_start();
$_SESSION["ten"]="ddth.com";
echo $_SESSION["ten"];
//cai này hiện ra là ddth.com cái này thì ko sao
?>
Nhưng khi tôi mở 1 trang mới với
trang2.php
<?php
session_start();
echo $_SESSION["ten"];
//cai này ko hiện gì cả
?>
tôi muốn trang2.php hiện ra ddth.com thì làm sao
khoanhi viết 02:15 ngày 10/10/2018
lướt qua thì thấy bạn tắt trình duyệt rồi mở lại nên chắc không hiện được
dungbeo113 viết 02:03 ngày 10/10/2018
Duyệt các link trên cùng 1 cửa sổ mới đúng là 1 session. Thử viết 1 trang khác chỉ có dòng
Code:
cho $_SESSION["ten"];
Sau đó đặt link vào trang cũ của bạn , rồi chạy trang cũ, nhấp vào link đến trang mới là thấy liền hà.
kiem_bo viết 02:03 ngày 10/10/2018
dĩ nhiên cách của dungbeo113 tôi đã làm rồi và đã thành công nhưng bây giờ đang ở trang1.php tôi mở thêm 1 trình duyệt IE nữa và gõ trang2.php tức là hiện tại máy tôi đang mở cùng lúc 2 trang trang1.php và trang2.php và làm sao để trang2.php nhận được session ở trang1.php tôi có hỏi và người ta nói dùng cookie nhưng tôi ko biết làm như thế nào cả. Session đây của tôi chứa 1 lượng dữ liệu lớn mà cookie thì chứa sao nổi
jiSh@n viết 02:13 ngày 10/10/2018
Được gửi bởi kiem_bo
dĩ nhiên cách của dungbeo113 tôi đã làm rồi và đã thành công nhưng bây giờ đang ở trang1.php tôi mở thêm 1 trình duyệt IE nữa và gõ trang2.php tức là hiện tại máy tôi đang mở cùng lúc 2 trang trang1.php và trang2.php và làm sao để trang2.php nhận được session ở trang1.php tôi có hỏi và người ta nói dùng cookie nhưng tôi ko biết làm như thế nào cả. Session đây của tôi chứa 1 lượng dữ liệu lớn mà cookie thì chứa sao nổi
Bạn nên tìm hiểu kỹ về khái niệm session trước khi bắt tay vào lập trình web. Bạn đang có 2 session khác nhau chứ ko phải 1 session. Đề nghị dùng cookie cũng ko hoàn toàn đúng, 2 browser khác nhau sẽ có cookie khác nhau. Bạn phải dùng 1 nơi lưu dữ liệu duy nhất, có thể là file hoặc database.

P/S: PHP rất dễ học, nhưng dù có dễ thế nào đi nữa thì cũng nên học 1 cách đúng đắn các khái niệm cơ bản trước khi bắt tay vào code. Code với đống kiến thức chắp vá thủng lỗ chỗ thì sẽ ko khá được đâu.
dungbeo113 viết 02:05 ngày 10/10/2018
Được gửi bởi kiem_bo
dĩ nhiên cách của dungbeo113 tôi đã làm rồi và đã thành công nhưng bây giờ đang ở trang1.php tôi mở thêm 1 trình duyệt IE nữa và gõ trang2.php tức là hiện tại máy tôi đang mở cùng lúc 2 trang trang1.php và trang2.php và làm sao để trang2.php nhận được session ở trang1.php tôi có hỏi và người ta nói dùng cookie nhưng tôi ko biết làm như thế nào cả. Session đây của tôi chứa 1 lượng dữ liệu lớn mà cookie thì chứa sao nổi
cái link trang2.php vẫn đặt ở trang 1 nhưng thẻ <a thì thêm thuộc tính target="_blank" vào thì nó sẽ open 1 new windows thôi.
Nếu bạn nhấp vào biểu tượng IE mở 1 cửa sổ mới truy suất vào tức là mở 1 session mới rồi đó. Còn nếu đứng từ trang 1 mà mở trang2 với thuộc tính nói trên thì sẽ là 1 session
kiem_bo viết 02:00 ngày 10/10/2018
tôi tham khảo trên các diễn đàn là họ nói dùng cookie lưu session_id() vào đó. Xong rồi ko chỉ tiếp. Bây giờ ai biết cách sử dụng session_id đó cho trang tiếp theo trường hợp là mở của sổ IE mới. Ko biết ai gặp trường hợp này chưa tôi chỉ suy nghĩ trường hợp này để đề phòng thôi
jiSh@n viết 02:00 ngày 10/10/2018
Được gửi bởi PHP Manual
session_start() creates a session or resumes the current one based on the current session id that's being passed via a request, such as GET, POST, or a cookie.
Nếu như session_id() (SID) đã được đẩy vào cookie thì trong trang kế tiếp khi gọi session_start(), session với SID kia sẽ được resume chứ ko tạo ra session mới. Cấu hình mặc định của PHP thì SID sẽ được đưa vào cookie tự động.
Đấy là trường hợp chung trình duyệt mới có chung cookie. Khác browser thì SID phải được đưa vào URL (GET) hoặc form (POST). Ví dụ: trang2.php?SID

Đọc PHP Mnaual đi, nói rất rõ phần này:
Session Handling Functions :: Passing the Session ID
Bài liên quan
0