0
努力與session_regenerate_id
問題與我是否有問題的一些保證我正在做的。與PHP混淆session_regenerate_id
我工作的代碼非常類似於上php.net一個user post,但我已經簡化下來了這個問題,如下:
ini_set('session.save_handler', 'files');
session_save_path(dirname(__FILE__).'/tmp');
session_start();
$_SESSION['Test'] = "info";
$_SESSION['Test2'] = "more info";
$orig = session_id();
session_regenerate_id();
echo "Original session is ".$orig."<br>";
echo "Regen session is ".session_id()."<br>";
這輸出到屏幕
項原始會話o9t1rhb2o9affn1ljisic1tas1
雷根會話gu9pkhi3loklr02r23m8lkvoh4
o9t1rhb2o9affn1ljisic1tas1的內容是
gu9pkhi3loklr02r23m8lkvoh4的內容是
測試| S:4: 「信息」; Test2的| S:9: 「更多信息」 ;
正如你所看到的只有新的會話包含任何數據,原來的是空的。我期待兩者都包含相同的數據。
我在這裏錯過了什麼,或者這是正確的行爲?
據我所知,會話ID將被替換,布爾決定了舊的會話是否被刪除或不。我收錄的鏈接顯示有人使用false來保持兩個會話進行,我說這不適合我,因爲第一個會話丟失了數據 –
@neilwatson它不工作,因爲TRUE是默認值。您發佈的鏈接使用FALSE。當你想要相同的行爲時,使用FALSE。 – DanFromGermany
不幸的是,我們可能不得不同意在php.net和[this](https:// books)上將函數的默認行爲作爲[rfc](https://wiki.php.net/rfc/precise_session_management) .google.co.uk /書?ID = noi76uKOJ5wC&PG = PA147&LPG = PA147&DQ = session_regenerate_id +默認+假源= BL&OTS = GgkhDWwM-J SIG = ryOA9_n3etYGiLITsTB91fG061Y&HL = EN&SA = X&VED = 0CEIQ6AEwBWoVChMImO72vNzLxwIVhmnbCh2cOwZh#v = onepage&q = session_regenerate_id%20default%20false&F =假)參考書說默認是假的 –