Tôi có một biến session mà tôi thiết lập như thế này:phiên PHP thay đổi biến giữa các trang
<?php
$token = md5(uniqid(rand(), true));
session_start();
$_SESSION['token'] = $token;
print $_SESSION['token'];
?>
Sau đó, trên một trang khác tôi có điều này:
<?php
session_start();
print $_SESSION['token'];
?>
Vấn đề là họ không trận đấu. Tôi nhận được hai chuỗi hoàn toàn khác nhau. register_globals
bị tắt. Tôi đã nhận thấy rằng khi tôi đặt md5(....)
thành chuỗi không đổi, ví dụ: md5('example')
, nó hoạt động như mong đợi và hai chuỗi khớp nhau. Nhưng điều đó không quan trọng. Bất kỳ ý tưởng về những gì đang xảy ra ở đây?
EDIT: Apache login Log:
127.0.0.1 - - [18/Sep/2010:17:46:09 -0500] "GET /index.php HTTP/1.1" 200 3182 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
127.0.0.1 - - [18/Sep/2010:17:46:09 -0500] "GET /style/style.css HTTP/1.1" 304 - "http://cmb.local:8888/index.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
127.0.0.1 - - [18/Sep/2010:17:46:09 -0500] "GET /js/signup.js HTTP/1.1" 304 - "http://cmb.local:8888/index.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
127.0.0.1 - - [18/Sep/2010:17:46:09 -0500] "GET /index.php HTTP/1.1" 200 3182 "http://cmb.local:8888/index.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
127.0.0.1 - - [18/Sep/2010:17:46:10 -0500] "GET /index.php HTTP/1.1" 200 3182 "http://cmb.local:8888/index.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
Tôi không khá chắc chắn làm thế nào để đọc mà nhưng có vẻ với tôi rằng tập tin của tôi (index.php mà tôi giả định là '/') đang được được gọi là ba lần. Tôi có đọc đúng không? Có chuyện gì vậy?
Tôi không thể tạo lại hành vi này. Kiểm tra nhật ký truy cập của bạn và cung cấp thêm một số chi tiết về môi trường bạn đang sử dụng. Rõ ràng là mã được cung cấp không phải là toàn bộ hệ thống, bạn có thể đặt lại mã thông báo đó ở một nơi khác. –
Một số plugin trình duyệt được biết là gây ra hành vi mà một số yêu cầu được gửi thay vì một. – James
@Josh K Tôi không ... cả hai trang đều tĩnh ngay bây giờ. Điều duy nhất được thiết lập hoặc thay đổi là mã thông báo và điều đó chỉ xảy ra ở một nơi như được hiển thị ở trên. – williamg