today I was trying something using 'lib cURL' when I got this weird error, I cannot found a solution for this, can you help me to figure it out?
<?php set_time_limit(0); class cURL { var $content; var $cookie; var $headers = array(); var $ch; var $data; var $info; var $httpcode; var $proxy_ip; var $proxy_port; var $cookie_f; function __construct($cookie = '') { if (!empty($cookie)) { $this->cookie_f = $cookie; } } function setproxy($proxy) { list($ip, $porta) = explode(":", $proxy); $this->proxy_ip = $ip; $this->proxy_port = $porta; } function setcookie($cookie) { $this->cookie = $cookie; } function open($type, $url) { $this->ch = curl_init(); curl_setopt($this->ch, CURLOPT_URL, $url); curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($this->ch, CURLOPT_HEADER, true); //curl_setopt($this->ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded", "Content-length: 216")); curl_setopt($this->ch, CURLOPT_ENCODING, ""); curl_setopt($this->ch, CURLOPT_COOKIEFILE, getcwd() . '/cookies.cookie'); curl_setopt($this->ch, CURLOPT_COOKIEJAR, getcwd() . '/cookies.cookie'); curl_setopt($this->ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18"); if (strtolower($type) == 'post') { curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($this->ch, CURLOPT_POST, 1); curl_setopt($this->ch, CURLOPT_POSTFIELDS, $this->data); curl_setopt($this->ch, CURLOPT_HEADER, true); } $this->content = curl_exec($this->ch); curl_close($this->ch); return $this->content; } } ?> <?php $curll = New cURL; $curll ->setCookie = "cookies.cookie"; $curll ->data = "username=user&password=pass&IsSyncUp=&FacebookAssociation=&SNAccessToken="; $curll ->open("POST", "http://www.website.com"); $curll ->data = '__EVENTTARGET=ctl00$ctl00$cphRoblox$cphMyRobloxContent$lbSend&ctl00$ctl00$cphRoblox$cphMyRobloxContent$rbxMessageEditor$txtSubject=AAAAAAAAA&ctl00$ctl00$cphRoblox$cphMyRobloxContent$rbxMessageEditor$txtBody=BBBBBBBBB'; $curll ->open("POST", "http://www.website.com/My/PrivateMessage.aspx?RecipientID=20815603"); echo $curll ->content; ?> So, my returned error was:
HTTP/1.1 302 Found Cache-Control: private Content-Type: text/html; charset=utf-8 Location: /Login/Default.aspx?ReturnUrl=%2fMy%2fPrivateMessage.aspx%3fRecipientID%3d20815603&RecipientID=20815603 Server: Microsoft-IIS/7.0 Set-Cookie: rbx-ip=; path=/; HttpOnly Set-Cookie: RBXSource=rbx_acquisition_time=10/14/2011 3:32:12 PM&rbx_acquisition_referrer=http://www.website.com/My/PrivateMessage.aspx?RecipientID=20815603&rbx_medium=Direct&rbx_source=www.website.com&rbx_campaign=&rbx_send_info=0; expires=Sun, 13-Nov-2011 21:32:12 GMT; path=/ X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET P3P: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE" Date: Fri, 14 Oct 2011 20:32:12 GMT Content-Length: 224 HTTP/1.1 411 Length Required Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 Date: Fri, 14 Oct 2011 20:32:12 GMT Connection: close Content-Length: 344
Length Required HTTP Error 411. The request must be chunked or have a content length.
So my problem was "The request must be chunked or have a content length." My POST was made by consulting browser post using 'Live HTTP Headers' (Mozila)
If I comment the seconds data & open/post it works fine. The seconds data and open/post was the problem.
Can anybody help me? Thanks for reading.