Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   curl и сессия (http://www.flasher.ru/forum/showthread.php?t=94975)

Chas 24.04.2007 23:26

curl и сессия
 
с помощью curl хочу загрузить xml-страницу, сформированную моим же пхп-сервлетом.
загружаю таким образом:
Код:

        $ch= curl_init();
          curl_setopt($ch, CURLOPT_URL, "http://localhost/connector/connect.php");
//          curl_setopt($ch, CURLOPT_HEADER, 0);
          curl_setopt($ch, CURLOPT_HEADER, 0); 
         
          curl_setopt($ch, CURLOPT_VERBOSE, 1);
          curl_setopt($ch, CURLOPT_POST, 1);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST['request']);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
                         
          $textcurl = curl_exec($ch);
      curl_close($ch);

только вот проблема. в connect.php есть проверка авторизации пользователя следующим образом: $_SESSION[logged]=1
и она проваливается, а дамп $_SESSION в connect.php показывает пустой массив. т.е. курл для загрузки данных создает видимо свою сессию.

можно ли заставить курл использовать текущую сессию?

Skubent 25.04.2007 12:56

Убрать из своего скрипта проверку для IP адреса или передавать какое-нибудь кодовое слово в запросе.

И сдается мне, что Вы вообще не понимаете, что у вас там происходит. Во всяком случае "своя сессия для курла" - это выше моего понимания.

Chas 25.04.2007 18:35

имеется ввиду, что курл не использует сессию и куки броузера в своем соединении.
как оказалось нужно было добавить
Код:

curl_setopt($ch, CURLOPT_COOKIE, $_SERVER[HTTP_COOKIE]);
так передается в курл все куки, в том числе иномер сессии.
только перед этим обязательно, если оба скрипта на одном хосте, нужно выключить сессию вызывающего скрипта, иначе вызываемый скрипт подвиснет, пытаясь открыть уже открытую сессию.

Skubent 25.04.2007 19:10

Да, действительно, какой недогадливый курл. Не отдает куки сам. Ну надо же.

Причем хочу добавить, что если разнести скрипт с курлом и скрипт, генерирующий данные на разные сервера - работать не будет.
Все почему ? Потому что HTTP протокол для автора скрипта остался некоей магической приблудой, которая работает через заклинание "curl". И автор снова придет с вопросом "куда деваются мои куки ?". Хех. НЕт бы теорию почитать...

А если Вы в пределах одного сервера из своих же скриптов через HTTP получаете данные - то мне остается только посочувствовать Вашему заказчику.

Chas 25.04.2007 21:34

ой, не надо кидать понты. гордыня - наказуемый богом грех.
коннектор предназначен для флешки, которая _естественно_ на этом же хосте, а тут мне просто понадобилась приблуда, где я смогу тестировать правильно ли выдается коннектором xml-ка.
если бы я хотел передать содержимое сессии на другой хост, я бы это сделал.

Skubent 26.04.2007 12:26

Chas, о грехах наших скорбных разговаривать - это к попам или к Горбатому.
А незнание - оно только для блаженных хорошо.
Рекомендую все же почитать про HTTP протокол, чтобы таких вот вопросов не возникало. Потому что флэшка "_естественно_ на этом же хосте" - это супер.
У Вас сервер на флэше работает ? Или все же флэшка будет работать у пользователя и таки отправять запросы к серверу ? И, если будет отправлять их, то каковы будут заголовки запросов и заголовки ответов сервера ?


Часовой пояс GMT +4, время: 03:32.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.