Когда я устанавливаю cookie на две числовые строки, используя переменную, заданную $ _GET, она сохраняется как одно число выше в cookie. Но переменная на самом деле правильная! Это происходит в Chrome, но не в Firefox. Я на сервере WAMP и получаю доступ локально.
Если я установил test.php? A = 07
$val = $_GET['a'];
setcookie('t', $val, time() + (86400 * 30), '/');
var_dump($val);
возвращается
string '07' (length=2)
Здесь, где вещи сходят с ума. В другом скрипте:
var_dump($_COOKIE['t']);
возвращается
string '08' (length=2)
Как в 90% случаев. Если я установил куки-кучу, иногда он вернется "07". Я проверил сам файл cookie и получил его как большее число. Так что это не извлечение. Он также работает с другими номерами.
Если я установлю переменную в скрипте, это не произойдет.
$val = '07';
setcookie('t', $val, time() + (86400 * 30), '/');
var_dump($val);
Работает отлично. Как делает:
setcookie('t', '07', time() + (86400 * 30), '/');
var_dump($val);
Что бы это могло быть?
EDIT: приведенный выше код - это полные файлы. Единственное, чего не хватает, это открытие
<?php var_dump($_COOKIE['t']);
WAMP Server 2.4 Apache 2.4.4 PHP 5.4.12
Я понял. Я должен был больше обратить внимание на:
Это происходит в Chrome, но не в Firefox.
Это вызвано расширением Chrome. Я забыл, что у меня было расширение, оставшееся от предыдущего проекта. Это был один из этих расширений "следующей страницы". Например, вы можете нажать кнопку "Далее", чтобы перейти с сайта website.com/img1.jpg на website.com/img2.jpg и так далее. Должно быть, это была предварительная загрузка следующей страницы в последовательности. Это изменило переменную GET и вызвало изменение файла cookie. Удалено расширение, проблема исчезла. Столь разочарование от такой простой вещи!