CjHandler.php
43 lines
| 1 | <?php |
| 2 | namespace NitroPack\SDK\Utils; |
| 3 | |
| 4 | use NitroPack\SDK\NitroPack; |
| 5 | |
| 6 | class CjHandler { |
| 7 | private $nitro; |
| 8 | |
| 9 | public function __construct($nitro) { |
| 10 | $this->nitro = $nitro; |
| 11 | } |
| 12 | |
| 13 | public function handleQueryParams() { |
| 14 | if (!$this->isIgnoredParam("cjevent")) { |
| 15 | return; |
| 16 | } |
| 17 | |
| 18 | $_GET_lower = array_change_key_case($_GET, CASE_LOWER); |
| 19 | if (empty($_GET_lower['cjevent']) || empty($_SERVER['HTTP_HOST'])) { |
| 20 | return; |
| 21 | } |
| 22 | $cookie_name = "cje"; |
| 23 | $domain = preg_replace("/^(www.)?(.*)$/", ".$2", $_SERVER['HTTP_HOST']); |
| 24 | $cjevent = $_GET_lower["cjevent"]; |
| 25 | setcookie($cookie_name, $cjevent, time() + (86400 * 395), "/", $domain, true, false); |
| 26 | } |
| 27 | |
| 28 | public function isIgnoredParam($paramName) { |
| 29 | $config = $this->nitro->getConfig(); |
| 30 | $ignoredParams = $config->IgnoredParams; |
| 31 | |
| 32 | if ($ignoredParams) { |
| 33 | foreach ($ignoredParams as $ignorePattern) { |
| 34 | $regex = "/^" . NitroPack::wildcardToRegex($ignorePattern) . "$/"; |
| 35 | if (preg_match($regex, $paramName)) { |
| 36 | return true; |
| 37 | } |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | return false; |
| 42 | } |
| 43 | } |