За последние 24 часа нас посетили 20843 программиста и 1127 роботов. Сейчас ищут 367 программистов ...

Можно ли стартовать сессию во фрейме?

Тема в разделе "PHP для новичков", создана пользователем 118_64, 27 ноя 2017.

  1. 118_64

    118_64 Активный пользователь

    С нами с:
    8 янв 2015
    Сообщения:
    84
    Симпатии:
    2
    Есть два сайта на разных доменах, оба под моим контролем. Сайт №1 загружает фрейм с сайта №2, на котором я авторизован (или нет). На сайте №1 авторизация не нужна и не предусмотрена. Пытаюсь вывести во фрейме разное содержимое в зависимости от состояния авторизации:

    PHP:
    1. if (isset($_COOKIE[session_name()])) {
    2.     session_start();
    3. }
    HTML:
    1. <?php
    2.  if(isset($_SESSION['id'])){
    3. ?>
    4.     <a href="/list.php">Ссылка</a>
    5. <?php
    6.  }
    7. ?>
    Всё отлично работает в Хроме, Firefox, Opera, но не работает в Safari и Internet Explorer. Последние два просто "не видят" и не обрабатывают кроссдоменные куки (есть нюансы и отличия между ними в поведении, но в целом мой код не работает как следует). Насколько я понимаю, это связано с политикой безопасности этих браузеров.

    Прошу совета, существует ли возможность заставить Safari и Internet Explorer обрабатывать кроссдоменные куки во фрейме?

    Или как иначе можно выводить разное содержимое в зависимости от состояния авторизации на сайте, с которого загружается фрейм?

    UPD: Опытным путем выяснил, что это зависит от настроек браузера по умолчанию "Запретить сторонним веб-сайтам сохранять и просматривать файлы cookie". Если запретить, например, в Хроме, он во фрейме тоже ничего обрабатывать не будет. Остается в силе второй пункт: прошу совета, как отслеживать кроссдоменную авторизацию?
     
    #1 118_64, 27 ноя 2017
    Последнее редактирование: 27 ноя 2017