我有我這樣設置會話變量:PHP會話變量的變化
<?php
$token = md5(uniqid(rand(), true));
session_start();
$_SESSION['token'] = $token;
print $_SESSION['token'];
?>
然後在另一頁上我有這樣的:
<?php
session_start();
print $_SESSION['token'];
?>
的問題是,他們沒有比賽。我得到兩個完全不同的字符串。 register_globals
已關閉。我注意到,當我設置md5(....)
爲一個常量字符串,例如:md5('example')
,它按預期工作並且兩個字符串匹配。但那不應該。關於這裏發生了什麼的任何想法?
編輯:Apache的艾策斯日誌:
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"
我不太知道如何閱讀,但在我看來,我的文件(的index.php我以爲是「/」)正在叫三次。我讀的是對的嗎?那裏發生了什麼?
我無法重現此行爲。檢查您的訪問日誌,並提供有關您正在使用的環境的更多詳細信息。很明顯,提供的代碼不是整個系統,您可能在其他地方重置了該令牌。 – 2010-09-18 21:59:00
某些瀏覽器插件已知會導致發送多個請求而不是一個請求的行爲。 – James 2010-09-18 22:28:48
@Josh K我不是......兩個頁面現在都是靜態的。唯一被設置或更改的是令牌,並且只發生在一個地方,如上所示。 – williamg 2010-09-18 22:31:09