Xpoint
   [напомнить пароль]

php session

Метки: [без меток]
2010-06-08 14:56:27 [обр] Александр Петров(2/4)[досье]

Здравствуйте, есть скрипт domen.ru/index.php

session_start();
//Пытаюсь получить содержимое файла через HTTP и передаю сессию в HTTP_COOKIE
$opts = array(
     'http'=>array(
      'method'=>"GET",
      'header'=>"Cookie: {$_SERVER['HTTP_COOKIE']};"
     )
   );
   $context = stream_context_create($opts);
   $data = file_get_contents("http://domen.ru/data.php", 0, $context);

есть второй скрипт domen.ru/data.php

//session_start()
...

Так вот в скрипте data.php вижу HTTP_COOKIE, но как только раскомментирую session_start() скрипт index.php зависает так что прямо с сервером.

спустя 2 часа 39 минут [обр] Николай Комиссаров aka Survivor(13/81)[досье]
ну видимо index.php лочит файл с сессией. в data.php session_start() ждет пока оно разлочится и по очевидным причинам дождаться не может.
попробуйте сделать так
session_write_close();
$data = file_get_contents("http://domen.ru/data.php", 0, $context);
session_start();
спустя 14 часов [обр] Александр Петров(2/4)[досье]
Николай Комиссаров aka Survivor[досье], спасибо.
спустя 5 минут [обр] Александр Петров(2/4)[досье]
но наверное тоже не вариант, после session_write_close(); сессия исчезнет
спустя 2 часа 35 минут [обр] Александр Петров(2/4)[досье]
не вариант
спустя 4 часа 8 минут [обр] Николай Комиссаров aka Survivor(13/81)[досье]

почему это после session_write_close сессия куда-то изчезнет
index.php

<?php
session_start();
$_SESSION['first'] = 123;
$opts = array(
     'http'=>array(
      'method'=>"GET",
      'header'=>"Cookie: {$_SERVER['HTTP_COOKIE']};"
     )
);
$context = stream_context_create($opts);
session_write_close();
$data = file_get_contents("http://test.nk/data.php", 0, $context);
session_start();
print_r($_SESSION);

data.php

<?php
session_start();
$_SESSION['second'] = 456;

результат

Array ( [first] => 123 [second] => 456 )

тут есть только 1 нюанс. когда страница открывается в первый раз, в куках нету session_id и оно не попадет в контекст, это нужно проконтролировать самостоятельно

спустя 18 часов [обр] Александр Петров(2/4)[досье]
Точно работает, просто ругается когда второй раз запускаю сессию на то что куки уже отправлены. Но работает
спустя 2 часа 57 минут [обр] Lynn «Кофеман»(98/571)[досье]
У меня вопрос, зачем вы это делаете?!
спустя 5 дней [обр] Александр Петров(2/4)[досье]
объясню. Делаю Ajax приложение. Ajax данные это xml с инструкцией обработки xsl. Клиент анализирует xml, получает ссылку из инструкции на шаблон трансформирует. Но... В случае с Ajax все просто, а когда данные нужно построить запросив их не Ajax, тогда проблема, придумывать что то новое я не стал, просто делаю "Ajax" сервером. Логика сохранилась и приложение не усложнилось.
спустя 59 секунд [обр] Александр Петров(2/4)[досье]
у меня файлы xml динамически формируются.
Powered by POEM™ Engine Copyright © 2002-2005