работа с сессией при использовании сокетов

Discussion in 'PHP' started by Дикс, 12 Sep 2008.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    значицца так:
    есть у меня скрипт, который через сокеты отправляет пост запрос к другому скрипту на локалхосте.
    при первом запуске я кладу данные в сессию.
    когда второй раз запускаю - сессия пуста.

    в ответе проскальзывает
    PHP:
    Set-CookiePHPSESSID=2ufrorn5vo5agt4cid23et0ib7;
    но когда я вывожу куки - они тоже пустые постоянно.

    Что можно сделать?
     
    1 person likes this.
  2. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    А куки передавать незабываешь?
     
  3. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Имя сессии будет в печеньках. Сохраняй ее в переменную, а потом подставляй в следующих запросах в печеньки.
     
    1 person likes this.
  4. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    ещё можеш попробовать передавать сессию как гет параметр.
     
    3 people like this.
  5. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    решил проблему.

    1. совершаю отправку хидеров. читаю ответ, нахожу там строку типа "Set-Cookie: PHPSESSID=4nbaf8t8pabgpqne17aercj9f4; path=/"
    выдираю из неё куку и создаю нормальную куку.
    2. при отправке последующих запросов - добавляю строку типа
    PHP:
        if(isset($_COOKIE['PHPSESSID']))
            
    $headers .= "Cookie: PHPSESSID=".$_COOKIE['PHPSESSID']."\r\n";
     
  6. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    <?php
    preg_match_all
    ('#Set-cookie: (.*?)#UiS',$res,$cookie);
    $cookie implode('',array_unique($cookie['1']));
    echo 
    $cookie;
    ?>
    Из моего спамера
     
    2 people like this.