2009-09-03 19 views
30

Tôi đang chơi với các cookie. Và tôi không có bất kỳ cookie nào được gọi là PHPSESSID.PHPSESSID là gì?

Tôi có cần nó không? Tôi có thể xóa nó không?

Whats "chức năng" của nó?

if (count($_POST)) { 

setcookie("TestCookie", htmlspecialchars($_POST['val']), time()+3600); 
} 

print_r($_COOKIE); 

Prints:

Array 
(
    [TestCookie] => blabla 
    [PHPSESSID] => el4ukv0kqbvoirg7nkp4dncpk3 
) 
+2

Nó chỉ là số nhận dạng mặc định mà PHP sử dụng cho các cookie được tạo bởi 'session_start()'. Nếu bạn muốn thay đổi tên đó, sử dụng 'ini_set ('session_name', 'somethingElse')' – caw

+0

KHÔNG có ini_set ('session.name', 'somethingElse'); (chú ý dấu chấm) và bạn phải sử dụng nó TRƯỚC KHI session_start(); trên trang EVERY php. (không chỉ là trang đăng nhập) – Tarik

+0

HOẶC sử dụng session_name ('somethingElse'); (trên mỗi trang trước khi session_start() hoặc session_register() được gọi) – Tarik

Trả lời

34

PHP sử dụng một trong hai phương pháp để theo dõi phiên. Nếu cookie được bật, như trong trường hợp của bạn, cookie sẽ sử dụng chúng.

Nếu cookie bị tắt, nó sử dụng URL. Mặc dù điều này có thể được thực hiện một cách an toàn, khó hơn và thường xuyên, tốt, không phải là . Xem, ví dụ: session fixation.

Google cho nó, bạn sẽ nhận được rất nhiều lời khuyên về SEO. Sự khôn ngoan thông thường là bạn nên sử dụng các tập tin cookie, nhưng php sẽ theo dõi các phiên một trong hai cách.

+179

Tôi đã google. Đây là nơi Google dẫn tôi. –

+1

Không sử dụng URL cho ID phiên! Nó không an toàn. –

+7

@DustinGraham hahha cũng vậy, chúng tôi cũng vậy. – MJoraid

5

Đó là nhận dạng cho phiên hiện tại của bạn bằng PHP. Nếu bạn xóa nó, bạn sẽ không thể truy cập/sử dụng các biến phiên. Tôi đề nghị bạn giữ nó.

0

Kiểm tra php.ini cho id phiên tự động.

Nếu bạn bật, bạn sẽ có PHPSESSID trong cookie của mình.

10

tôi sẽ bổ sung thêm:
bạn nên sử dụng một tên khác
"PHPSESSID" tiết lộ bạn đang sử dụng PHP

này có thể được thực hiện trong php.ini session.name

hoặc thông qua chức năng session_name()

+11

Hơn [80%] (http://w3techs.com/technologies/history_overview/programming_language) của trang web sử dụng PHP, thông tin này là vô ích.Không ai có thể tìm thấy lỗi của máy chủ chỉ dựa trên thông tin này. – Kalzem

+17

Nó vẫn là một cách để xác định công nghệ mà máy chủ hiện đang chạy, mà bạn có thể hoặc không muốn tiết lộ. –