我在设置和检索Cookie时遇到两个问题。
这是我的代码:
$ad_source = $_GET['source'];
$date_of_expiry = time() + (86400 * 7);
setcookie('ad_source',$ad_source,$date_of_expiry,'/');
if ( $_COOKIE['ad_source'] == 'adwords_campaign_01' ) {
echo '... do something';
} elseif ( $_COOKIE['ad_source'] == 'adwords_campaign_02' ) {
echo '... do something else';
}
我试图通过确定用户点击的adwords广告系列,在整个网站上显示不同的信息。
我通常不会使用Cookie而更喜欢设置会话,但在这种情况下,我希望能够在更长的时间内跟踪来源。
答案 0 :(得分:0)
现在一切都按预期工作了。在这篇文章中,一些关于cookie的更有见地的信息帮助了很多。
PHP cookie set in second refresh page
设置Cookie后将用户重定向到页面。来自浏览器的第二个请求发送cookie,服务器返回相对于其值的信息。
在创建Cookie之前检查$ ad_source是否已设置。
更新的代码:
$ad_source = $_GET['source'];
$date_of_expiry = time() + (86400 * 7);
if ( $ad_source ) {
setcookie('ad_source',$ad_source,$date_of_expiry,'/','example.com');
if ( $_COOKIE['ad_source'] == 'adwords_campaign_01' ) {
header( 'Location: http://example.com/' );
echo '... do something';
} elseif ( $_COOKIE['ad_source'] == 'adwords_campaign_02' ) {
header( 'Location: http://example.com/' );
echo '... do something else';
}
}