简体   繁体   English

如果找不到$ _GET,如何设置默认的Cookie进行推介?

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

I want make a simple referral system. 我想要一个简单的推荐系统。 Basically referral URL structure something like this. 基本上,引荐网址的结构是这样的。

http://domain.com/?ref=abc
http://domain.com/about-us/?ref=abc
http://domain.com/slug/more-slug/?ref=abc
  1. How do I validate if no cookie found, script will set default cookie to $_COOKIE['referral'] = 'generic' 如何验证是否未找到Cookie,脚本会将默认Cookie设置为$_COOKIE['referral'] = 'generic'
  2. If cookie already exists just keep it. 如果cookie已经存在,则保留它。

Here what I've done but it always replace to generic if no referral found although previously already having it. 在这里,我已经做过,但是如果之前没有找到推荐,它将始终替换为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);
    }
}

you could remove isset($_GET['ref']) cause you check !empty($_GET['ref']) 您可以删除isset($ _ GET ['ref']),因为您检查!empty($ _ GET ['ref'])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM