2011-08-20 14 views
11

Tất cả các hướng dẫn đều nói để bắt đầu phiên. Họ không nói điều đó có nằm trong tất cả các trang trên trang web hay không, hoặc chỉ một số hoặc chỉ 1.Viết bắt đầu phiên trên 1 trang hoặc tất cả các trang?

Và nếu chỉ có 1 trang, trang đó có phải là trang chính không? Hoặc một trang với một biểu mẫu mà tôi đang tạo để đặt ID phiên trong cơ sở dữ liệu? Nếu khách truy cập không bao giờ truy cập một trang có id phiên nhưng họ đang ở trên trang web, họ vẫn có id phiên không?

Trả lời

0

Mọi thứ sắp truy cập Các biến phiên cần phải bắt đầu phiên.

Vì vậy, trừ khi bạn có trang php không phụ thuộc vào phiên mà mọi trang cần.

17

Bạn cần đặt điều này vào mỗi trang cần truy cập dữ liệu phiên trước khi truy cập (hoặc tạo) bất kỳ dữ liệu phiên nào.

Xem: http://php.net/manual/en/function.session-start.php

+0

Vì vậy, tôi sẽ đặt bắt đầu phiên ở đầu mỗi trang trên trang web, VÀ tôi sẽ đặt nó vào mã sẽ đặt ID phiên trong cơ sở dữ liệu mysql? Vì vậy, bắt đầu phiên nên được viết 2 lần trên các trang đó? – hmwhat

+2

Không. Bạn chỉ cần một lần trên mỗi trang nhưng trước khi truy cập dữ liệu. – theprogrammer

14

Chỉ cần cho một vấn đề của sự hoàn chỉnh, bạn có thể chọn để viết session_start(); trong tất cả các trang, chỉ trong vòng một hoặc ai trong số họ. Hãy để tôi giải thích điều này.

Bạn cần bắt đầu phiên trong mỗi kịch bản mà bạn cần truy cập vào $_SESSION biến nhưng thay vì đưa session_start(); trong mỗi kịch bản duy nhất bạn có thể tạo một headers.php tập tin và đặt ở đó tất cả các mã lặp đi lặp lại của bạn bao gồm session_start();

Nếu mọi thứ trong ứng dụng của bạn cần truy cập vào $_SESSION bạn có thể quên việc sử dụng session_start(); chỉ cần đặt session.auto_start = 1 vào tệp php.ini của mình. Bạn sẽ có thể truy cập $_SESSION mà không cần viết session_start(); trước đây.

More here

0

Bạn cần khai báo session_start(); trong mỗi trang nếu bạn muốn nhận dữ liệu từ $ _SESSION hoặc lưu trữ dữ liệu vào $ _SESSION trong trang cụ thể đó. Nếu bạn không cần phải tương tác với $ _SESSION thì bạn không phải khai báo session_start(). @ Hmwhat

Các vấn đề liên quan