【发布时间】:2016-02-05 01:29:46
【问题描述】:
页面变量 =
$lgc_code = '1,2,3,15,23,30';
Cookie = 'lgc_cntl'
我的 cookie 包含每个用户的逻辑代码,用于根据之前访问的网页确定应显示哪些横幅或图标。我写了以下函数:
$lgc=$lgc_code;
// check for variable for multiple codes
$expEncArr = explode(",", $lgc);
$results = count($expEncArr);
if(isset($_COOKIE['lgc_cntl'])) {
// read cookie
$cookie_codes = $_COOKIE['lgc_cntl'];
// Build Array of cookie codes
$expEncArr2 = explode(",", $cookie_codes);
foreach($expEncArr as $l_code) {
if(in_array($l_code, $expEncArr2)) {
$lgc_codes=$_COOKIE['lgc_cntl'];
} else {
$lgc_codes=$_COOKIE['lgc_cntl'].','.$l_code;
} // end array search statement
// add campaign to cookie
setcookie('lgc_cntl',$lgc_codes,time() + (86400 * 365), "/", ".oru.edu"); // 86400 = 1 day
} // end foreach statement
} else {
$lgc_codes = $lgc;
// add campaign to cookie
setcookie('lgc_cntl',$lgc_codes,time() + (86400 * 365), "/", ".oru.edu"); // 86400 = 1 day
} // end isset(cookie) if / else statement
如果没有设置 cookie,该函数可以正常工作,但如果找到 cookie,它只会添加数组中的最后一个变量,而不是 cookie 中未找到的任何代码。
该功能应该如下工作:
- 将页面变量分离到一个数组中
- 检查 cookie
- 将 Cookie 值分隔到一个数组中
- 将页面上的变量与 cookie 中的值进行比较
- 添加任何在 cookie 中找不到的页面变量
它一直在工作,但是当设置 cookie 时,它只添加字符串中的最后一个变量,即使其他变量都不位于 cookie 数组中。我做错了什么或者我该如何解决这个问题?
【问题讨论】: