forked from dvygolov/YellowCloaker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcookies.php
54 lines (50 loc) · 1.88 KB
/
cookies.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
function ywbsetcookie($name,$value,$path){
$expires = time()+60*60*24*5; //время, на которое ставятся куки, по умолчанию - 5 дней
header("Set-Cookie: {$name}={$value}; Expires={$expires}; Path={$path}; SameSite=None; Secure",false);
}
function get_cookie($name){
if (session_status()!==PHP_SESSION_ACTIVE) {
session_start(['read_and_close'=>true]);
}
$c=(isset($_COOKIE[$name])?$_COOKIE[$name]:(isset($_SESSION[$name])?$_SESSION[$name]:''));
return $c;
}
function get_subid(){
$subid=get_cookie('subid');
return $subid;
}
function set_subid(){
if (session_status()!==PHP_SESSION_ACTIVE) {
ini_set("session.cookie_secure", 1);
session_start();
}
//устанавливаем пользователю в куки уникальный subid, либо берём его из куки, если он уже есть
$cursubid=isset($_COOKIE['subid'])?$_COOKIE['subid']:uniqid();
ywbsetcookie('subid',$cursubid,'/');
$_SESSION['subid']=$cursubid;
session_write_close();
return $cursubid;
}
//проверяем, если у пользователя установлена куки, что он уже конвертился, а также имя и телефон, то сверяем время
//если прошло менее суток, то хуй ему, а не лид, обнуляем время
function has_conversion_cookie($name,$phone){
$date = new DateTime();
$ts = $date->getTimestamp();
$is_duplicate=false;
if (!empty($_COOKIE['ctime'])&&!empty($_COOKIE['name'])&&!empty($_COOKIE['phone'])){
$cname = $_COOKIE['name'];
$cphone = $_COOKIE['phone'];
$ctime = $_COOKIE['ctime'];
if ($cname===$name&&$cphone===$phone){
$hourdiff = round((strtotime($ts) - strtotime($ctime))/3600, 1);
if ($hourdiff<24)
{
$is_duplicate=true;
ywbsetcookie('ctime',$ts,'/');
}
}
}
return $is_duplicate;
}
?>