如果找不到$_GET,如何设置推荐的默认cookie


How do I set default cookie for referral if no $_GET found?

我想做一个简单的推荐系统。基本上是这样的URL结构。

http://domain.com/?ref=abc
http://domain.com/about-us/?ref=abc
http://domain.com/slug/more-slug/?ref=abc
  1. 如果找不到cookie,我该如何验证,脚本会将默认cookie设置为$_COOKIE['referral'] = 'generic'
  2. 如果cookie已经存在,请保留它

这里我做了什么,但如果没有找到推荐,它总是替换为generic,尽管以前已经有了。

if (!isset($_COOKIE['referral'])) {
    setcookie('referral', 'generic', time() + 31536000);
} else if (isset($_GET['ref']) && !empty($_GET['ref'])) {
    $ref = trim(secure($_GET['ref']));
    setcookie('referral', $ref, time() + 31536000);
}
if(!isset($_COOKIE['referral'])){
    if(isset($_GET['ref']) && !empty($_GET['ref'])) {
        $ref = trim(secure($_GET['ref']));
        setcookie('referral', $ref, time() + 31536000);
    }else{
        setcookie('referral', 'generic', time() + 31536000);
    }
}

您可以删除isset($_GET['ref']),因为您选中了!空($_GET['ref'])