拥有两个网站:
为了实现这一点,我尝试在网站
除Safari外,这种方法很有效。Safari默认阻止在网站
解决此问题的另一种方法可能是使用
是否有简单的解决此问题的方法,而无需拥有存储IP地址或类似内容的数据库?
以下是我目前拥有的代码:
那么,解决这个问题的最简单工作流是什么?
我也尝试加载一个图像标签,但它没有起作用:
A
和B
。我希望打开网站B
的用户,如果他们没有访问过网站A
,则被重定向到另一个网站(例如http://example.com
)。为了实现这一点,我尝试在网站
A
上设置cookie(只需加载网站A
上的一个页面并设置cookie)。当打开网站B
时,我检查该cookie。除Safari外,这种方法很有效。Safari默认阻止在网站
B
上设置cookie。我搜索了很多资料,发现Safari默认阻止第三方cookie。解决此问题的另一种方法可能是使用
Referer
头(在单击网站A
上的链接时,将引用者发送到网站B
),但这对于不想被追踪且禁用引用者标头的用户无效。是否有简单的解决此问题的方法,而无需拥有存储IP地址或类似内容的数据库?
以下是我目前拥有的代码:
Website B index.php
:<?php
$cookie_name = "visited_first_website";
if(isset($_COOKIE[$cookie_name]) ) {
echo "Visited";
} else {
$newURL = "https://example.com";
header('Location: '.$newURL);
}
?>
这是在网站A上运行的,使用B/set-cookie.js
。
window.addEventListener("DOMContentLoaded", function () {
var iframe = document.createElement("iframe");
//iframe.style.display = "none";
var scripts = document.getElementsByTagName("script");
var src = scripts[scripts.length - 1].src;
var websiteBAddress = src.match(new RegExp("https?://[^/]*"))[0];
iframe.setAttribute("src", websiteBAddress + "/js/embed.php");
document.body.appendChild(iframe);
});
embed.php
文件长这样:<?php
$cookie_name = "visited_first_website";
$cookie_value = time();
setcookie($cookie_name, $cookie_value, time() + (86400 * 2), "/"); // 86400 = 1 day
header('Access-Control-Allow-Origin: *');
?>
<!DOCTYPE html>
<html>
<body>
</body>
</html>
那么,解决这个问题的最简单工作流是什么?
我也尝试加载一个图像标签,但它没有起作用:
<img src="B/js/embed.php">