2012-03-13 24 views
7

Tôi không thể truy cập cookie từ bất kỳ trang nào khác ngoài trang được thiết lập. Tôi đã xem print_r($_COOKIE) trên các trang khác nhau và biến duy nhất giữa các trang là $_COOKIE['PHPSESSID'].Cookie của tôi chỉ có sẵn trên các trang PHP mà chúng được cài đặt, điều này có bình thường không?

Tôi đang phát triển trên máy chủ thử nghiệm XAMPP cục bộ. Có cài đặt nào tôi nên thay đổi trên PHP.ini hoặc hành vi bình thường này đối với cookie không? Xin lỗi, tôi là một chút mới với công cụ này và tôi đã theo các cookie ấn tượng có thể truy cập trang web rộng.

Tôi đang thiết cookie như:

setcookie("user", "Dave Schmave", time()+60*60*24*120); 

Bất kỳ trợ giúp sẽ được đánh giá rất nhiều. Cảm ơn

+0

Bạn có thể tìm thấy ['$ cookie-> setPath ($ path)'] (https://github.com/delight-im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php#L104) hữu ích, như được tìm thấy trong [thư viện độc lập này] (https://github.com/delight-im/PHP-Cookie). – caw

Trả lời

11

Hãy thử thiết lập đường dẫn cookie vào thư mục gốc:

setcookie("user", "Dave Schmave", time()+60*60*24*120, '/'); 

Cũng là nó trên cùng một tên miền? Truy cập qua HTTPS cũng sẽ ảnh hưởng đến cookie của bạn.

+0

Điều đó dường như làm điều đó. Đây có phải là cái gì đó có thể được thay đổi trên một thiết lập máy chủ toàn cầu? Tệp php.ini của tôi session.cookie_path được đặt thành '/' nhưng tôi đoán tôi vẫn sẽ cần phải khai báo gốc trong setcookie(). Cảm ơn sự giúp đỡ của bạn1 –

+0

có thể có điều gì đó đang ghi đè cài đặt này. Hãy thử đặt một phpinfo() tại vị trí của kịch bản của bạn và kiểm tra các thiết lập :) –

+0

Ah, tôi đã đọc sai API và đang sử dụng tên miền 'domain.com' của tôi ở đây thay vì đường dẫn. –