Поддержание той же сессии в дочернем окне - PullRequest
1 голос
/ 13 июля 2009

Когда пользователь заходит на мой сайт, для него начинается сеанс. Существует точка, в которой дочернее окно создается с помощью JavaScript на домашней странице моего сайта.

Это дочернее окно переходит на сайт Twitter для аутентификации пользователя, и перенаправляется обратно на скрипт на моем сайте, который хранит некоторые переменные в СЕССИИ.

Я обнаружил, что скрипт PHP в дочернем окне не знает о сеансе и идентификаторе сеанса, который уже установлен, и поэтому начинает новый сеанс, что означает, что родительское окно (index.php) не может получить доступ к этому сеансу переменные.

Я озадачен . Что я могу сделать?

Обновление

Вот мой код, но проблема не в моем коде, а в реализации 1020 *, с которой у меня возникли проблемы.

index.php

<?php session_start(); ?>

oauth.php // дочернее окно

<?php session_start();

$_SESSION['screen_name'] =  $twitterInfo->screen_name;

$_SESSION['profile_image_url'] = $twitterInfo->profile_image_url;

?>

Когда дочернее окно закрывается, и я использую AJAX для проверки имени экрана следующим образом, он возвращает несоответствие, поскольку дочернее окно oauth.php использует другой сеанс (id).

<?php session_start();

    sleep(1);

    if(isset($_SESSION['screen_name'])){

        echo 'done';
        exit;

    }else{

        echo session_id().$_SESSION['screen_name'];
        exit;

    }
?>

1 Ответ

2 голосов
/ 13 июля 2009

Если вы используете тот же домен, то PHP должен знать о сеансе, поскольку все куки отправляются обратно в домен, который устанавливает их в соответствии со спецификациями HTTP.

Обратите внимание, что домен www.domain.com отличается от домена domain.com. Куки также могут быть установлены для пути в домене, поэтому убедитесь, что путь такой же. Файлы cookie также можно установить для нескольких поддоменов, используя *.

Если вы разместите соответствующий код PHP, который вам нужен, это поможет.

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