куки или сеанс между 2 доменами - PullRequest
0 голосов
/ 10 января 2020

основной сайт: perfectwp.com/index.php код

<font size="5">Hello this is my main site</font><br/>

<font size="5">to visit my secondry site <a href="http://perfectwp.site" target="_blank">click here</font></a>

дополнительный сайт: perfectwp.site/index.php код

<?php
if(!isset($_SERVER['HTTP_REFERER'])){
    // redirect them to your desired location
    header('location:404.php');
    exit; } ?>

<font size="5">Hi Welcome to my Secondry site you are coming from my main site 
<br/><br/><br/>watch video below</font> <br/><br/><br/>

<iframe width="560" height="315" src="https://www.youtube.com/embed/-i0OIy5zSrs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

если посетитель при перенаправлении через основной сайт он получает содержимое вторичного сайта, но если пользователь пытается получить доступ к вторичному сайту, напрямую возвращается 404. И это работает сейчас.

Вопрос в том, перенаправляет ли пользователь с основного сайта, как мы можем установить файлы cookie или сессия для него. или как мы можем сказать браузеру не проверять это ограничение для этого пользователя при следующем посещении

[я прошу администратора, пожалуйста, не скрывайте мой вопрос, мне действительно очень нужна помощь]

Ответы [ 2 ]

0 голосов
/ 10 января 2020

спасибо за ваш ответ, и я получил то, что вы сказали, у меня есть вопрос, можем ли мы создать сеанс, не указав правдоподобный, я имею в виду, что у меня есть только одна страница на моем сайте, и я хочу использовать текущий URL браузера как сеанс, проверяемый для ниже код

<?php
if(!isset($_SERVER['HTTP_REFERER'])){
    // redirect them to your desired location
    header('location:404.php');
    exit; } ?>

или как мы можем создать сессию только для текущей страницы? сообщить браузеру, что пользователь уже посетил эту страницу

0 голосов
/ 10 января 2020

Вы не можете напрямую устанавливать куки для другого домена. Единственный способ добиться того, чего вы хотите - это сторонние файлы cookie. Однако это не гарантируется, поскольку браузеры, такие как Firefox, могут быть настроены на игнорирование сторонних файлов cookie.

Это будет работать примерно так: создайте файл на втором сайте (например, perfectwp.site/track. php):

<?php
setcookie('from_perfectwp_com',  date('Y-M-D H:i:s'), time() + (86400 * 365), "/");

header('Content-Type: application/javascript');
// make sure this isn't cached:
header("Expires: on, 01 Jan 1970 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// output will be empty
?>

Затем включите его в perfectwp.com/index.php (1-й сайт) в качестве источника JavaScript:

<script src="https://perfectwp.site/track.php"></script>

Предполагая трек. php никогда не вызывается откуда-либо еще, кроме 1-го сайта, можно предположить, что, если установлен повар ie, пользователь должен был посетить 1-й сайт хотя бы один раз. После этого на вашем perfectwp.site/index.php вы можете проверить наличие повара 'from_perfectwp_com' ie:

if (!isset($_COOKIE['from_perfectwp_com'])) {
    header('location:404.php');
    exit; } ?>

Опять же: не гарантируется работа из-за возможных ограничений стороннего повара ie в зависимости от браузера клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...