Я создаю партнерскую ссылку для моего сайта и должен иметь возможность хранить строку запроса URL в файл cookie, срок действия которого истекает через 7 дней.
Пользователи будут нажимать на ссылку, например: http://examplesite.com?afil=randomvalue .
Я хочу вытащить ключ «afil» и значение «randomvalue» и поместить его в файл cookie.
Это будет использоваться позже по дороге в другой области сайта, и я не могу сохранить его в URL-адресе.
Я нашел этот пост: Установите Cookie на основе URL-адреса
Но, похоже, он не делает то, что я хочу, или установить дату истечения срока действия. Я не уверен, что для этого лучше всего использовать php или javascript, но я планировал использовать php, чтобы вытащить данные позже.
ОБНОВИТЬ:
Я добавил этот код на мой сайт dev здесь: http://inventivewebdesign.com/dev/about?afil=great
<?php $value=$_GET['afil']; //the value from the url setcookie("afilCookie", $value, strtotime( '+7 days' )); /* expire in 7 days */ echo "Cookie = " . $value; ?>
Как вы можете видеть, оно отображает значение cookie (я добавил его прямо в конец моего файла header.php, который помещает его в тело). По какой-то причине он не добавляет его в мои файлы cookie, когда я их просматриваю.
Кроме того, нужно ли это сделать условно, если нет никакого значения afil?
http://php.net/manual/en/function.setcookie.php
$value=$_GET['afil']; //the value from the url setcookie("TestCookie", $value, strtotime( '+7 days' )); /* expire in 7 dasy */
относительно его местоположения в потоке кода в руководстве говорится:
setcookie () определяет cookie для отправки вместе с остальными HTTP-заголовками. Как и другие заголовки, файлы cookie должны быть отправлены до выхода из вашего скрипта (это ограничение протокола). Это требует, чтобы вы отправляли вызовы этой функции до любого вывода, включая и теги, а также любые пробелы.