Php curl cookie etkinleştirmek olamaz

1 Cevap php

İşte curl kullanmak için kod:

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's malfunctioning that I've never experienced before. and this is the output of the testcookie.php :

Cookies are NOT enabled on your browser

Burada unlink kaldırmak if ($ this-> cookie_file) komik bir şey; imha çerez dosya silinmiş almazsınız fonksiyonu ve sonraki zaman sen alacak bu komut dosyası çalıştırmak

Çerezler tarayıcınızda etkinleştirilmiş

testcookie.php kaynak kodu:

setcookie("test","test");
if (isset ($_COOKIE['test']))
{
    echo "Çerezler tarayıcınızda etkinleştirilmiş";
}
else
{
    echo "Cookies are <b>NOT</b> enabled on your browser";
}

1 Cevap

Sorun nerede ben görmüyorum. CURL bunu yapmak için varsayar tam olarak ne yapıyor.

setcookie () setleri istemciye cevap başlığında çerez. _COOKIE Istek başlığında değerini içerir. Eğer çerez dosyasını kaldırırsanız, CURL set çerez değerini kalıcı bir yol vardır.