почему через сокеты я получаю куки, а через curl нет?

Discussion in 'PHP' started by Дикс, 23 May 2009.

  1. Дикс

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

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    отправляю запрос курлом:

    PHP:
            $options = array(
          
    CURLOPT_VERBOSE => 1,
          
    CURLOPT_POST => 1// method POST
          
    CURLOPT_HEADER => 1// show headers
          
    CURLOPT_NOBODY => 0// disable body
          
    CURLOPT_POSTFIELDS => array(
            
    'mode' => 'login',
            
    'chal' => 'c0:1216468800:2495:300:E7hQqy7D7SSujymYaT2h:b38844ffa11fdf08d87fc4812788a686',
            
    'response' => '',
            
    'user' => 'user',
            
    'password' => 'pass',
            
    '_submit' => 'Login',
            
    'remember_me' => 1

          
    ), // post data
          
    CURLOPT_FOLLOWLOCATION => 1,
          
    CURLOPT_RETURNTRANSFER => 1// return response
          
    CURLOPT_SSL_VERIFYPEER => 0// verify ssl sertificat
          
    CURLOPT_USERAGENT => 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; MRA 4.9 (build 01863))',
          
    CURLOPT_TIMEOUT => 30
          
    );

          
    $process curl_init('www.site.ru');
          
    curl_setopt_array($process$options);
          
    $return curl_exec($process);
          
    curl_close($process);
    получаю:

    всего ОДНА кука.

    А если отправить через сокеты:

    PHP:
       $content  "mode=login&chal=c0:1216468800:2495:300:E7hQqy7D7SSujymYaT2h:b38844ffa11fdf08d87fc4812788a686&response=&";
        
    $content .= "user=user&password=pass&_submit=Login&remember_me=1";

        
    $req  "POST /login.bml?ret=1 HTTP/1.0\r\n";
        
    $req .= "Accept: */*\r\n";
        
    $req .= "Content-Type: application/x-www-form-urlencoded\r\n";
        
    $req .= "Proxy-Connection: Keep-Alive\r\n";
        
    $req .= "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; MRA 4.9 (build 01863))\r\n";
        
    $req .= "Host: www.livejournal.com\r\n";
        
    $req .= "Content-Length: ".strlen($content)."\r\n";
        
    $req .= "Pragma: no-cache\r\n\r\n";
        
    $req .= $content;

        
    $sock fsockopen("www.livejournal.com"80,  $errno$errstr30);
    получаю:

    при этом CURLOPT_FOLLOWLOCATION вообще ничего не решает. ответы сервера разные, сокетам он говорит "document moved here", а курлу - "username not found"
     
  2. Дикс

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

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    хотя щас выяснилось что если передать не
    PHP:
          CURLOPT_POSTFIELDS => array(
            
    "mode" => "login",
            
    "chal" => "c0:1216468800:2495:300:E7hQqy7D7SSujymYaT2h:b38844ffa11fdf08d87fc4812788a686",
            
    "response" => "",
            
    "user" => {$user},
            
    "password" => {$password},
            
    "_submit" => "Login",
            
    "remember_me" => "1",

          ),
    а

    PHP:
    CURLOPT_POSTFIELDS => "mode=login&chal=c0:1216468800:2495:300:E7hQqy7D7SSujymYaT2h:b38844ffa11fdf08d87fc4812788a686&response=&user={$user}&password={$password}&_submit=Login&remember_me=1",
    ответ у курла, такой же как и у сокетов..
     
    1 person likes this.
  3. Дикс

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

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    тема неактуальна
     
  4. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    wth?
     
  5. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Если кому нибудь интересен ответ то вот
    /showpost.php?p=1222758&postcount=2
     
  6. Дикс

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

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    эээ
    а как у меня в другом скрипте работает-то с массивом пост-полей??
    сначала юзал curl_set_opt(), потом увидел подсказку что можно всё массивом скинуть
    а теперь оказывается что массив туда нельзя =\
     
  7. Дикс

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

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    точно, спасибо