Unable to enable cookie in php curl

Here is my code for using curl:

class cURL {
    var $headers;
    var $user_agent;
    var $compression;
    var $cookie_file;
    var $proxy;
    var $process;

    function cURL($cookies = TRUE, $cookie = 'cookies.txt', $compression = 'gzip', $proxy = '') {
        $this->headers [] = 'Connection: Keep-Alive';
        $this->headers [] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
        $this->user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';
        $this->compression = $compression;
        $this->proxy = $proxy;      

        $this->cookies = $cookies;
        if ($this->cookies == TRUE)
            $this->cookie ( "c:/wamp/www/googlegroups/cookies/".$cookie );

        $this->process = curl_init ();
        curl_setopt ( $this->process, CURLOPT_HTTPHEADER, $this->headers );
        curl_setopt ( $this->process, CURLOPT_USERAGENT, $this->user_agent );

        if ($this->cookies == TRUE)
            curl_setopt ( $this->process, CURLOPT_COOKIEFILE, $this->cookie_file );
        if ($this->cookies == TRUE)
            curl_setopt ( $this->process, CURLOPT_COOKIEJAR, $this->cookie_file );

        curl_setopt ( $this->process, CURLOPT_ENCODING, $this->compression );
        curl_setopt ( $this->process, CURLOPT_TIMEOUT, 30 );
        if ($this->proxy)
            curl_setopt ( $this->process, CURLOPT_PROXY, $this->proxy );
        curl_setopt ( $this->process, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt ( $this->process, CURLOPT_FOLLOWLOCATION, 1 );
        curl_setopt ( $this->process, CURLOPT_SSL_VERIFYHOST, 0 );
        curl_setopt ( $this->process, CURLOPT_SSL_VERIFYPEER, 0 );
    }

    function __destruct(){
        curl_close ( $this->process );
        unlink($this->cookie_file);
    }

    function cookie($cookie_file) {
        if (file_exists ( $cookie_file )) {
            $this->cookie_file = $cookie_file;
        } else {
            if($fp = fopen ( $cookie_file, 'w' ))
            {
                fclose($fp);
            }
            else $this->error ( 'The cookie file could not be opened. Make sure this directory has the correct permissions' );
            $this->cookie_file = $cookie_file;
        }
    }
    function get($url) {
        curl_setopt ( $this->process, CURLOPT_POST, 0);
        curl_setopt ( $this->process, CURLOPT_URL, $url);
        $return = curl_exec ( $this->process );
        return $return;
    }

 }

$cc = new cURL();
echo $cc->get("http://127.0.0.1/googlegroups/testcookie.php");

This is a very strange type of curl that I have never experienced before. and this is the result of testcookie.php:

Cookies are not enabled on your computer. browser

Here's the fun thing if you delete unlink ($ this-> cookie_file); the cookie will not be deleted from the kill function, and the next time you run this script, you will get

Cookies enabled in your browser

testcookie.php source code:

setcookie("test","test");
if (isset ($_COOKIE['test']))
{
    echo "Cookies are enabled on your browser";
}
else
{
    echo "Cookies are <b>NOT</b> enabled on your browser";
}
+3
source share
1 answer

I do not see where the problem is. CURL does exactly what it intends to do.

setcookie() cookie . _COOKIE . cookie, CURL cookie.

+5

Source: https://habr.com/ru/post/1724188/


All Articles