Как cookies прикрутить к скрипту?

S
На сайте с 22.03.2008
Offline
179
1552

Он utm метки в url читает и значение соответствующее выводит.

Но не запоминает значение при переходе на другие страницы и при повторном визите.

<?
$key = '000000';
$key2 = '000';
if(isset($_GET['utm_source'])){
if($_GET['utm_source'] == '1'){
$key = '11111111';
$key2 ='111444';
}
if($_GET['utm_source'] == '2'){
$key = '22222222';
$key2 ='222333;

}
}
?>
вывод инфы: <?=$key;?> <?=$key2;?>
Mish-ka
На сайте с 08.06.2011
Offline
414
#1

Подпишусь на тему, для образовательных целей.

Больше всего интересует - зачем это делать, собственными силами. То бишь - какое практическое применение.

Серч уже не торт => https://se.guru
tommy-gung
На сайте с 22.11.2006
Offline
300
#2
Здесь не могла быть ваша реклама
totamon
На сайте с 12.05.2007
Offline
437
#3
Shing:
Но не запоминает значение при переходе на другие страницы и при повторном визите.

значит не заложено запоминание, а также подстановка в ссылки на "другие страницы"...

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
ДП
На сайте с 23.11.2009
Offline
203
#4


<?
$key = '000000';
$key2 = '000';
//cookie lifetime
$lifetime = 60*60;
if (isset($_GET['utm_source']) || isset($_COOKIE['utm_source'])) {
if ($_GET['utm_source'] == '1' || (isset($_COOKIE['utm_source']) && $_COOKIE['utm_source'] == '1')) {
$key = '11111111';
$key2 = '111444';
setcookie("utm_source", 1, time() + $lifetime);
}
if ($_GET['utm_source'] == '2' || (isset($_COOKIE['utm_source']) && $_COOKIE['utm_source'] == '2')) {
$key = '22222222';
$key2 = '222333';
setcookie("utm_source", 2, time() + $lifetime);
}
}
?>

вот как-то так.

Врмя жизник куки в переменной $lifetime в секундах.

S
На сайте с 22.03.2008
Offline
179
#5
Дикий пионер:

<?
$key = '000000';
$key2 = '000';
//cookie lifetime
$lifetime = 60*60;
if (isset($_GET['utm_source']) || isset($_COOKIE['utm_source'])) {
if ($_GET['utm_source'] == '1' || (isset($_COOKIE['utm_source']) && $_COOKIE['utm_source'] == '1')) {
$key = '11111111';
$key2 = '111444';
setcookie("utm_source", 1, time() + $lifetime);
}
if ($_GET['utm_source'] == '2' || (isset($_COOKIE['utm_source']) && $_COOKIE['utm_source'] == '2')) {
$key = '22222222';
$key2 = '222333';
setcookie("utm_source", 2, time() + $lifetime);
}
}
?>

вот как-то так.
Врмя жизник куки в переменной $lifetime в секундах.

Спасибо!

Но нужно ведь еще и к выводу прикрутить запрос на куки, типа если key пусто, то смотреть key в кукисах?

Что-то типа

if( ! empty( $_GET[ $key ] ) ) {

$value = $_GET[ $key ];

} else if( ! empty( $_COOKIE[ $key ] ) ) {

$value = $_COOKIE[ $key ];

но как точно не получается.

ДП
На сайте с 23.11.2009
Offline
203
#6

Не очень понял, если честно про прикручивание key.

Сейчас у вас $key задается по значению GET-параметра.

Если модифицировать скрипт как я показал - то будет либо по значению GET-параметра, либо по значению куки, т.е. логика установки $key остается как была, меняется лишь источник, откуда берется utm-метка.

По сути скрипт utm-метку сохраняет в куку и может её оттуда же и читать.

S
На сайте с 22.03.2008
Offline
179
#7

ясно, но тогда не работает к сожалению (

ДП
На сайте с 23.11.2009
Offline
203
#8

Этот скрипт в самое начало страницы ставлен?

<?php

$key = '000000';
$key2 = '000';
//cookie lifetime
$lifetime = 60*60;
if (isset($_GET['utm_source']) || isset($_COOKIE['utm_source'])) {
if ((isset($_GET['utm_source']) && $_GET['utm_source'] == '1') || (isset($_COOKIE['utm_source']) && $_COOKIE['utm_source'] == '1')) {
$key = '11111111';
$key2 = '111444';
setcookie("utm_source", 1, time() + $lifetime);
}
if ((isset($_GET['utm_source']) && $_GET['utm_source'] == '2') || (isset($_COOKIE['utm_source']) && $_COOKIE['utm_source'] == '2')) {
$key = '22222222';
$key2 = '222333';
setcookie("utm_source", 2, time() + $lifetime);
}
}
echo $key;
echo $key2;
?>

вот такой скрипт (добавил еще проверку, чтобы warning'ов не было) на отдельной странице работает.

попробуйте в файл вставить только это и зайти с параметром на него, а потом без параметра.

S
На сайте с 22.03.2008
Offline
179
#9

странно, а на отдельной странице где только скрипт, там работает.

а в темплейте вордпресса, где пхп код другой, там не работает.

конфликт какой-то что ли... так то работает, но вот куки не фурычат... странно.

ДП
На сайте с 23.11.2009
Offline
203
#10

Если как вы говорите код вставлен в шаблон WP - то вероятнее всего до исплнения этого кода - в браузер уже отправлена часть страницы - в таком случае работать этот код не будет, ибо куки не поставялся.

Как костыль - можно объявить переменные $key глобальной (я бы имя поуникальнее сделал), этот скрипт вставить в шаблон таким образом, чтобы он выполнялся самый первый, а уже где нужно выводить $key.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий