twmas52712 Posted February 19, 2009 Share Posted February 19, 2009 Hi all, This is my first time posting, so please let me know if I'm doing anything wrong. I am a newbie programmer, and have this problem that has had me stumped for two days. I'm trying to write a script that is capable of friending a Facebook user. The script successfully logs into the user account I am testing the scripton. After that I go to the search page and retrieve the cookies from it. Then, I go to the following url:www.facebook.com/addfriend.php?id=USERID. I get the page, and then I POST the form data to the page. However, when I postthe form data to the page, it returns the same page contents as if I sent a GET request. One thing that I've noticed is thatthe cookie file does not have two of the cookies that show up when I use Firebug. Another concern I have is that maybeI'm not actually sending a POST request, but I've tried every way I can and I am definitely sending a postarray and CURLOPT_POST is definitelyset to true. Is there a way to detect the requests I send from my php script so that I can make sure that it is actually POSTing the data? Do you have any other ideas on what may be causing this problem? Here's the code that I have so far: $cookie_file_path="tmp/cookie.txt"; $fp = fopen($cookie_file_path,'w'); fclose($fp); $agent = "Firefox (WindowsXP) - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"; $reffer = "http://www.facebook.com"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"http://www.facebook.com"); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/xampp/htdocs/fbfriend/tmp/cookie.txt"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt ($ch, CURLOPT_MAXREDIRS, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); $html = curl_exec($ch); //print $html; curl_close($ch); $cookie_file_path = "tmp/cookie2.txt"; $fp = fopen($cookie_file_path,'w'); fclose($fp); $agent = "Firefox (WindowsXP) - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"; $reffer = "http://www.facebook.com/login.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"https://login.facebook.com/login.php"); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_COOKIEFILE, "C:/xampp/htdocs/fbfriend/tmp/cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/xampp/htdocs/fbfriend/tmp/cookie2.txt"); curl_setopt($ch, CURLOPT_REFERER, "http://www.facebook.com/login.php"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, "charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&version=1.0&retu rn_session=0&charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&emai l=".$UN[$a]."%40yahoo.com&pass=".$PASS[$a]); $html = curl_exec($ch); //print $html; curl_close($ch); $searchurl='http://www.facebook.com/s.php?wk=&ed=16777224&nm=Aaron%20Cheung&init=e&k=100000020&sid=d50a5a210382fa75439b5834a0c7bc62'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$searchurl); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_COOKIEFILE, "C:/xampp/htdocs/fbfriend/tmp/cookie2.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/xampp/htdocs/fbfriend/tmp/cookie3.txt"); curl_setopt($ch, CURLOPT_REFERER, "http://www.facebook.com/home.php"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); $html = curl_exec($ch); //print $html; $postfields=array( "add"=>"Add Friend", "add_to_friend_list_widget_create_name_708093"=>"", "add_to_friend_list_widget_select_708093"=>"choose", "charset_test"=>"€,´,€,´", "confirmed"=>"1", "flid_name"=>"", "flids"=>"", "message"=>"", "post_form_id"=>"18ab9918553e773d3d9c4da5d835d2b0"); $posturl='http://www.facebook.com/addfriend.php?id=708093'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$posturl); //curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_COOKIEFILE, "C:/xampp/htdocs/fbfriend/tmp/cookie3.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/xampp/htdocs/fbfriend/tmp/cookie4.txt"); curl_setopt($ch, CURLOPT_REFERER, $searchurl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); $html = curl_exec($ch); curl_close($ch); $fh=fopen('tmp/cookie4.txt','a'); fwrite($fh,".facebook.com TRUE / FALSE 0 x-referer ".urlencode($searchurl)."\r\n"); fwrite($fh,".facebook.com TRUE / FALSE 0 presence %7B%22v%22%3A2%2C%22time%22%3A1235013200%2C%22ch%22%3A%7B%22h%22%3A%22channel06%22%2C%22p%22%3A80%2C %22sub%22%3A%5B1%5D%2C%22p_708093%22%3A2%2C%22ri%22%3A0%7D%2C%22state%22%3A%7B%22p%22%3A0%2C%22w%22% 3A1024%2C%22h%22%3A293%2C%22ut%22%3A1235011055195%2C%22pt%22%3A0%2C%22vis%22%3A1%2C%22smf%22%3A1%2C% 22bls%22%3A0%2C%22blc%22%3A0%2C%22snd%22%3A1%2C%22blo%22%3A0%2C%22bvt%22%3A0%2C%22ct%22%3A0%2C%22sb% 22%3A1%2C%22s%22%3A0%7D%2C%22ntf%22%3A8%2C%22bl%22%3A%7B%22ac%22%3A42%2C%22al%22%3A%7B%7D%2C%22ut%22 %3A1235013200%2C%22ud%22%3A457%2C%22lc%22%3A1%2C%22uo%22%3A%7B%7D%2C%22cvr%22%3A%7B%22ratio%22%3A1%2 C%22timestamp%22%3A1235009367%7D%7D%7D"); fclose($fh); $posturl='http://www.facebook.com/addfriend.php?id=708093'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$posturl); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_COOKIEFILE, "C:/xampp/htdocs/fbfriend/tmp/cookie4.txt"); curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/xampp/htdocs/fbfriend/tmp/cookie5.txt"); curl_setopt($ch, CURLOPT_REFERER, $posturl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); $html = curl_exec($ch); echo $html; curl_close($ch); Thanks for any help! Link to comment https://forums.phpfreaks.com/topic/145861-libcurl-scraping-problem-cant-post/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.