Посылка Cookie через Header (PHP)

Discussion in 'PHP' started by cop, 24 Nov 2006.

  1. cop

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

    Joined:
    14 Nov 2006
    Messages:
    58
    Likes Received:
    1
    Reputations:
    4
    Написал некий скрипт, который подключаеться к сайту через fsockopen, отправляет заголовки в том числе cookies, что бы войти в систему (типо через форму).
    С локальной машины все прекрасно работает.
    Загружаю скрипт на сервер и почему-то вход пользователя не происходит. [На этом сервере у меня тоже лежит скрипт, который выполняет похожу функцию к другому сайту, там все работает.] Что может быть? Сайт тот как-то определяет, что вход выполнен не через их? Но почему тогда срабатывает с моей машины. Может кто знает что это может быть? :)
     
  2. Baron Night

    Baron Night Elder - Старейшина

    Joined:
    6 Aug 2006
    Messages:
    24
    Likes Received:
    19
    Reputations:
    30
    тебе хост не режет права? на некот бесплатных хостингах работают не все скрипты
     
  3. r0

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

    Joined:
    17 Jul 2005
    Messages:
    450
    Likes Received:
    149
    Reputations:
    147
    наверно как всегда register_globals...
     
  4. cop

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

    Joined:
    14 Nov 2006
    Messages:
    58
    Likes Received:
    1
    Reputations:
    4
    Baron Night, это платный хост. К тому же на этом хосте скрипт с отправкой куков нормально работает.

    r0cha!, т.е.?
     
  5. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    Скрипт точь-точь такой на локалхосте пашет?
    Без любых изменений.
     
  6. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    поддержка сокетов есть??
    скрипт в студию...
     
  7. cop

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

    Joined:
    14 Nov 2006
    Messages:
    58
    Likes Received:
    1
    Reputations:
    4
    _Great_, да

    nc.STRIEM, сокеты поддерживаються, ниже скрипт (ф-ю стащил пыхпыха.нет)

    PHP:
    function sendToHost($host,$method,$path,$data,$cookie='',$useragent=0){
        
    $buf '';
        if (!
    $fp fsockopen($host80$errno$errstr30) )
            return 
    false;

        if (empty(
    $method)) {
            
    $method 'GET';
        }
        
    $method strtoupper($method);
        if (
    $method == 'GET') {
            
    $path .= '?' $data;
        }
        
    $out "$method $path HTTP/1.1\r\n";

        
    $out .= "Host: $host\r\n";
        
    $out .= "Referer: http://$host\r\n";
        
    $out .= "Content-type: application/x-www-form-urlencoded\r\n";
        if (
    $cookie){
            
    $out .= "Cookie: $cookie"\r\n";
        }
        if (
    $useragent) {
            
    $out .= "User-Agent: MSIE\r\n";
        }
        
    $out .= "Content-length: " strlen($data) . "\r\n";

        
    $out .= "Connection: Close\r\n\r\n";
        
        if (
    $method == 'POST') {
            
    $out .= $data;
        }

        if (! 
    fwrite($fp$out) )
            return 
    false;

        while (!
    feof($fp)) {
            
    $buf .= fgets($fp128);
        }
        
    fclose($fp);
        return 
    $buf;
    }
     
  8. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    замени:
    PHP:
        if ($method == 'POST') { 
            
    $out .= $data;
    на
    PHP:
        if ($method == 'POST') { 
            
    $out .= $data."/r/n/r/n";

    и замени:
    $out .= "Connection: Close\r\n\r\n";
    на
    $out .= "Pragma: no-cache\r\n\r\n";
     
    #8 nc.STRIEM, 24 Nov 2006
    Last edited: 24 Nov 2006
  9. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    да ну? ты протокол HTTP читал? что-то я не помню, чтобы после POST-запроса шли переводы строки
     
  10. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    Читал! не помню где но точн гдет читал что надо! ща еще посмотрю! возможно ошибаюсь..
     
  11. cop

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

    Joined:
    14 Nov 2006
    Messages:
    58
    Likes Received:
    1
    Reputations:
    4
    там кстати слеши не в ту сторону :)
    в любом случаи не помогло.

    nc.STRIEM, всеравно спасибо!
     
  12. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    один перевод строки после поста нужен. иначе как сервер поймет что ты данные уже послал и завершил запрос? =))) Это во-первых. Во-вторых, убирать Connection: close не нужно. В-третьих, если на локале скрипт работает, а на хосте нет - очевидно что дело в хосте =)
     
    _________________________
  13. cop

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

    Joined:
    14 Nov 2006
    Messages:
    58
    Likes Received:
    1
    Reputations:
    4
    Дело в том, что точно такой же скрипт на этом же хосте работает.