Куки в php

Discussion in 'PHP' started by xor[jmp], 10 Apr 2010.

  1. xor[jmp]

    xor[jmp] Banned

    Joined:
    29 Mar 2010
    Messages:
    89
    Likes Received:
    14
    Reputations:
    3
    Подскажите пожалуйста как принять куки от сайта средствами .php и записать их в переменную?
     
  2. xor[jmp]

    xor[jmp] Banned

    Joined:
    29 Mar 2010
    Messages:
    89
    Likes Received:
    14
    Reputations:
    3
    Вот такая ошибка:

    В таком коде:

    :(
     
  3. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    m0Hze, насколько я понял он хочет зайти на сайт вконтакте и сохранить полученные там куки в переменную...

    PHP:
    <?php
    $response
    ="";
    if (
    $fp fsockopen ("vkontakte.ru"80$errno$errstr30))
    {
    $request ="POST /profile.php HTTP/1.0\r\n";
    $request.="Host: vkontakte.ru\r\n";
    $request.="Content-Type: application/x-www-form-urlencoded\r\n";
    $request.="Content-Length: 7\r\n";
    $request.="\r\n\r\n";
    $request.="foo=bar";

    fwrite($fp,$request,strlen($request));

    while (!
    feof($fp))
    $response.=fread($fp,128);

    if(
    strpos($response,"302"))

    fclose($fp);
    echo 
    "<pre>\n";
    echo 
    htmlentities($response);
    echo 
    "</pre>\n";

    else

    echo 
    "<pre>\n";
    echo 
    htmlentities($response);
    echo 
    "</pre>\n";

    preg_match_all("/(?<=Set-Cookie: )(.*?)(?=\;)/"$response $cook);
    echo 
    '<br><br><br>Куки:<br>';
    print_r($cook[0]);

    }
    ?>
     
    #3 Fepsis, 10 Apr 2010
    Last edited: 10 Apr 2010
  4. xor[jmp]

    xor[jmp] Banned

    Joined:
    29 Mar 2010
    Messages:
    89
    Likes Received:
    14
    Reputations:
    3
    Ога, спс.А также интересно как их подставить контакту чтоб потом авторизироваться и получить profile.php ^_^
     
  5. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Давно как-то писал функцию для запросов, которая автоматов выдирает куки и автоматом же подставляет их в последующих запросах... Вот:

    PHP:
    <?php
    set_time_limit
    (0);

    $mail 'мыло@mail.ru';
    $pass 'пасс';


    function 
    request($url ''$post ''$ref '')
         {

        
    $u parse_url($url);
        
    $path $u[path].'?'.$u[query];

        global 
    $COOKIE;

        if (
    $COOKIE)
             {
            foreach (
    $COOKIE as $n => $v)
            
    $COOK .= $n.'='.$v.';';
             }

        
    $ip gethostbyname($u[host]);
        
    $fp fsockopen($ip,80,$en,$es,15);

        if(!
    $fp){exit('Connection failed. Error #'.$en.': '.$es);}  
        
        if (!empty(
    $post)) {$req "POST $path HTTP/1.1\r\n";} else {$req "GET $path HTTP/1.0\r\n";}
        
    $req .= "Host: $u[host]\r\n";
        
    $req .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4\r\n";
        if (!empty(
    $ref)) {$req .= "Referer: $ref\r\n";}
        
    $req .= "Content-type: application/x-www-form-urlencoded\r\n";
        if (!empty(
    $post)) {$req .= "Content-length: "strlen($post) ."\r\n";}
        
    $req .= "Cookie:".substr($COOK0strlen($COOK)-1)."\r\n";
        
    $req .= "Connection: close\r\n\r\n";
        if (!empty(
    $post)) {$req .= $post;}
        
    fwrite($fp,$req);
     

        while(!
    feof($fp))
             {
              
    $s .= fgets($fp,256);
             }


        
    fclose($fp);
        
    preg_match_all("/(?<=Set-Cookie: )(.*?)(?=\;)/"$s $cook);

        foreach (
    $cook[0] as $str)
            {
              list (
    $name$val) = explode('='$str);
              
    $COOKIE[$name]=$val;
        
            }

        return 
    $s;

    }



    $ex request('http://vkontakte.ru/login.php?email='.$mail.'&pass='.$pass);
    $ex request('http://vkontakte.ru/profile.php');

    echo 
    $ex;

    ?>
    За корректность работы функции не ручаюсь, но за основу можешь её взять...
     
  6. xor[jmp]

    xor[jmp] Banned

    Joined:
    29 Mar 2010
    Messages:
    89
    Likes Received:
    14
    Reputations:
    3
    Да, спс оно. +