Я написал небольшой скрипт PHP ниже, чтобы продемонстрировать свой вопрос.Запустите приведенный ниже код следующим образом: http://localhost/test.php?test=10,, затем выполните http://localhost/test.php?test=11,, затем http://localhost/test.php?test=12, и т. Д. Вы увидите, что число, отображаемое на экране, всегда на 1 цифру позади номера URL?!Может быть, потому что я не могу cookie и сразу же читаю тот же cookie?
//If query string has $test, store in session, and cookie for later.
if($_GET[test]){
$_SESSION['test'] = $_GET[test];
setcookie("test", $_GET[test], time()+60*60*24*30*12*10); //10 years
}
//If user comes back later, then get $test from cookie
if (isset($_COOKIE["test"])){
$_SESSION['test'] = $_COOKIE["test"];
}
echo "session test: " . $_SESSION['test'];
Позже я решил проблему с помощью следующего кода, но решить его недостаточно, я хочу знать, ПОЧЕМУ это произошло!
Это решило это:
if($_GET[cid]){
setcookie("campaignid", $_GET[cid], time()+60*60*24*30*12*10); //10 years
$_SESSION['campaignid'] = $_GET[cid];
}elseif (isset($_COOKIE["campaignid"])){
$_SESSION['campaignid'] = $_COOKIE["campaignid"];
}