Может кто-нибудь помочь мне очистить это и сделать его более логичным? Я жареная прямо сейчас и не могу получить хорошую строку кода, написанную :)Лучше захватить сессионный идентификатор партнера из GET в PHP
Я пытаюсь захватить идентификатор партнера из URL-адресов вроде? Aid = 3056677. Идея заключается в том, что IF aff id установлен в GET, который имеет приоритет, сеанс и, наконец, cookie с наименьшим. Кроме того, мы не хотим устанавливать идентификатор aff, который не существует.
Знаете ли вы, что более испытанный способ сделать это?
session_start(); // start session
// affiliate id
$g_aid = (isset($_GET['aid']) && $_GET['aid'] != '') ? trim($_GET['aid']) : false;
$s_aid = (isset($_SESSION['aid']) && $_SESSION['aid'] != '') ? trim($_SESSION['aid']) : false;
$c_aid = (isset($_COOKIE['aid']) && $_COOKIE['aid'] != '') ? trim($_COOKIE['aid']) : false;
if($g_aid !== false) // use get if set
$aid = $g_aid;
elseif($s_aid !== false) // next use session if get not set
$aid = $s_aid;
elseif($c_aid !== false) // cookie
$aid = $c_aid;
else
$aid = ''; // leave it empty
// if $aid is set is it in the $affiliates array?
//If not use the first key from that array
$aid = (isset($affiliates[$aid])) ? $aid : key($affiliates);
// save it and set it
// (maybe shouldn't be done if already stored?
setcookie('aid', $aid);
$_SESSION['aid'] = $aid;
Я сделал изменения, использующим 'isValid', чтобы гарантировать, что ваша ценность действительно действительна. Тернарный оператор сломается, как только он найдет допустимую переменную. –