WordPress.org

Plugin Directory

Changeset 214120


Ignore:
Timestamp:
03/06/10 17:39:16 (4 years ago)
Author:
keithdsouza
Message:

version 1.3.0 commits

Location:
notify-uncofirmed-subscribers/trunk/lib
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • notify-uncofirmed-subscribers/trunk/lib/class.feedburner.com.php

    r120053 r214120  
    88 */ 
    99 
    10  
    11 class nus_feedBurner extends nus_Base { 
     10require_once ('class.nus.base.php'); 
     11require_once ('class.Misc.php'); 
     12 
     13class nus_feedBurner { 
    1214 
    1315    var $baseURL; 
    1416    var $subscriberURL; 
    1517    var $loginURL; 
    16     var $classCookies; 
    17     var $currCookie; 
     18    var $cookies; 
     19    var $cookiefile; 
     20    var $errormessage; 
    1821    var $myName; 
    1922    var $username; 
     
    2326    var $allFeeders = array (); 
    2427    var $nextURL; 
    25   var $newAccount = false; 
    26  
    27  
    28     function nus_feedBurner($username, $password, $newaccount = false) { 
     28    var $debug = false; 
     29    var $showemails = false; 
     30     
     31 
     32 
     33    function nus_feedBurner($username, $password) { 
    2934        $this->myName = 'feedburner'; 
    3035        $this->username = $username; 
    3136        $this->password = $password; 
    32     $this->newAccount = $newaccount; 
    3337     
    34     if($newaccount) { 
    35       $this->baseURL = 'http://feedburner.google.com/fb/a/myfeeds'; 
    36       $this->subscriberURL = 'http://feedburner.google.com/fb/a/emailsyndication?output=report&format=csv&id='; 
    37       $this->loginURL = 'https://www.google.com/accounts/ServiceLoginAuth?service=feedburner'; 
    38     } 
     38        $this->baseURL = 'http://feedburner.google.com/fb/a/myfeeds'; 
     39        $this->subscriberURL = 'http://feedburner.google.com/fb/a/emailsyndication?output=report&format=csv&id='; 
     40        $this->loginURL = 'https://www.google.com/accounts/ServiceLoginAuth?service=feedburner'; 
     41        $this->loggedIn = false; 
     42        $this->cookiefile = trailingslashit(WP_PLUGIN_DIR).trailingslashit(NUS_COOKIE_DIR)."tmpnuscookie-".NUSMisc::random().".tmp"; 
     43        $this->nosey = new nus_Base($this->cookiefile); 
     44    } 
     45   
     46  function login() { 
     47    if (!$this->username || !$this->password) { 
     48            $this->set_error_message("E100 - Username or password were empty, make sure to enter both before submitting the form"); 
     49            $this->loggedIn = false; 
     50            return false; 
     51        } 
     52         
     53        //load the base URL 
     54        if(!$this->nosey->loadPage($this->baseURL)) { 
     55            $this->set_error_message("E101 - Error Loading FeedBurner Homepage."); 
     56            $this->loggedIn = false; 
     57            return false; 
     58        } 
     59         
     60        //NUSMisc::debug_dump("login.html", $this->nosey->getResponseBody()); 
     61         
     62        //we should have a redirect location which leads to the login url 
     63        $headers = $this->nosey->getResponseHeaders(); 
     64        $this->nextURL = $headers['location']; 
     65        if(!$this->nosey->loadPage($this->nextURL)) { 
     66            $this->set_error_message("E102 - Error Redirecting to Login Page."); 
     67            $this->loggedIn = false; 
     68            return false; 
     69        } 
     70         
     71        //fetch the varialbles required for posting the auth page 
     72        $response = $this->nosey->getResponseBody(); 
     73        //NUSMisc::debug_dump("loginpage.html", $this->nosey->getResponseBody()); 
     74        $match_str = "/<input type=\"hidden\" name=\"dsh\"(.*?)value=\"(.*?)\"/is"; 
     75        preg_match_all ($match_str, $response, $matcher); 
     76        if($matcher) { 
     77            $dsh = $matcher[2][0]; 
     78        } 
     79        $match_str = "/name=\"GALX\"(.*?)value=\"(.*?)\"/is"; 
     80        preg_match_all ($match_str, $response, $matcher); 
     81        if($matcher) { 
     82            $galx = $matcher[2][0]; 
     83        } 
     84        //can't work without this, throw an error if this is missing 
     85        if(!$galx) { 
     86            $this->set_error_message("E103 - Missing required GALX value."); 
     87            $this->loggedIn = false; 
     88            return false; 
     89        } 
     90         
     91        //construct the post data array 
     92        $postdata_arr = array( 
     93                                                "continue" => "http://feedburner.google.com/fb/a/myfeeds", 
     94                                                "service" => "feedburner", 
     95                                                "dsh" => $dsh, 
     96                                                "GALX" => $galx, 
     97                                                "Email" => $this->username, 
     98                                                "Passwd" => $this->password, 
     99                                                "signIn" => "Sign+in", 
     100                                                "rmShown" => "1", 
     101                                                "PersistentCookie" => "yes", 
     102                                                "asts" => ""); 
     103 
     104        //load the login page here 
     105        if (!$this->nosey->loadPage($this->loginURL, true, $postdata_arr)) { 
     106            $this->set_error_message("E104 - Error occured while authenticating user."); 
     107            $this->loggedIn = false; 
     108            return false; 
     109        } 
     110    if($this->is_login_failure($this->nosey->getResponseBody())) { 
     111      $this->loggedIn = false; 
     112            $this->set_error_message("E403 - Could not validate the username and password, please try again later."); 
     113            return false; 
     114    } 
     115        //NUSMisc::debug_dump("afterlogin.html", $this->nosey->getResponseBody()); 
     116         
     117        $headers = $this->nosey->getResponseHeaders(); 
     118        if($headers['location']) { 
     119            $this->nextURL = $headers['location']; 
     120             
     121            if(!$this->nosey->loadPage($this->nextURL)) { 
     122                $this->set_error_message("E105 - Error occured while setting Google Cookie."); 
     123                $this->loggedIn = false; 
     124                return false; 
     125            } 
     126        } 
     127         
     128        if($this->is_cookie_failure($this->nosey->getResponseBody())) { 
     129      $this->loggedIn = false; 
     130            $this->set_error_message("E400 - Encountered problems while setting cookies for FeedBurner."); 
     131            return false; 
     132    } 
     133         
     134        //NUSMisc::print_array($this->nosey->getResponseHeaders()); 
     135        //NUSMisc::debug_dump("checkcookie.html", $this->nosey->getResponseBody()); 
     136         
     137        $response = $this->nosey->getResponseBody(); 
     138        $response = str_replace("&#39;", "'", $response); 
     139        $response = str_replace("&amp;", "&", $response); 
     140        preg_match('/(.*?)0; url=\'(.*?)\'"/is', $response, $matcher); 
     141        $this->nextURL = $matcher[2]; 
     142        if($this->nextURL) { 
     143            if(!$this->nosey->loadPage($this->nextURL)) { 
     144                $this->set_error_message("E106 - Error occured while redirecting to Feedburner home."); 
     145                $this->loggedIn = false; 
     146                return false; 
     147            } 
     148             
     149            $headers = $this->nosey->getResponseHeaders(); 
     150            if($headers['location']) { 
     151                $this->nextURL = $headers['location']; 
     152                if(!$this->nosey->loadPage($this->nextURL)) { 
     153                    $this->set_error_message("E107 - Error occured while loading feed listing page."); 
     154                    $this->loggedIn = false; 
     155                    return false; 
     156                } 
     157            } 
     158        } 
    39159        else { 
    40       $this->baseURL = 'http://www.feedburner.com'; 
    41       $this->subscriberURL = 'http://www.feedburner.com/fb/a/emailsyndication?output=report&format=csv&id='; 
    42       $this->loginURL = 'https://www.feedburner.com/fb/a/loginSubmit'; 
    43     } 
    44          
    45         $this->currCookie = $this->myName . $username . $this->random(); 
    46         $this->loggedIn = false; 
    47         $this->nosey = new nus_Base($this->baseURL, $this->currCookie); 
    48     } 
    49  
    50     function login() { 
    51         if (!$this->username && !$this->password && !($this->nosey->isReady)) { 
    52             echo 'Cannot run without user name and password or Nosey was not instantiated.'; 
    53             $this->loggedIn = false; 
    54             return false; 
    55         } 
    56     return $this->newAccount ? $this->login_new() : $this->login_old(); 
    57     } 
    58    
    59   function login_old() { 
    60         $postData = 'userId=' . $this->username . '&password=' . $this->password . '&ticket='; 
    61         //$this->nosey->setURL($this->loginURL); 
    62         if (!$this->nosey->loadPage($this->loginURL, true, $postData)) { 
    63             echo "Perhaps you provided a wrong username or password. Please try again."; 
    64             $this->loggedIn = false; 
    65             return false; 
    66         } 
    67  
    68         $loginData = $this->nosey->getData(); 
    69         preg_match('#(.*?)0;URL=(.*?)"#s', $loginData, $matcher); 
    70         $this->nextURL = $matcher[2]; 
    71         if (!$this->nextURL) { 
    72             $this->loggedIn = false; 
    73             return false; 
    74         } 
     160            $this->set_error_message("E108 - Could not find redirect to Feedburner home page."); 
     161            $this->loggedIn = false; 
     162            return false; 
     163        } 
     164         
     165        //NUSMisc::debug_dump("finallyin.html", $this->nosey->getResponseBody()); 
    75166        return true; 
    76167  } 
    77    
    78   function login_new() { 
    79     $postData = 'service=feedburner&continue=http://feedburner.google.com/fb/a/myfeeds&Email=' . $this->username . '&Passwd=' . $this->password . '&PersistentCookie=yes&rmShown=1&signIn=Sign+In&asts=&GALX='; 
    80         //$this->nosey->setURL($this->loginURL); 
    81         if (!$this->nosey->loadPage($this->loginURL, true, $postData)) { 
    82             echo "Perhaps you provided a wrong username or password. Please try again."; 
    83             $this->loggedIn = false; 
    84             return false; 
    85         } 
    86  
    87         $loginData = $this->nosey->getData(); 
    88     preg_match('/(.*?)The username or password you entered is incorrect(.*?)"/is', $loginData, $matcher); 
    89     if($matcher) { 
    90       $this->loggedIn = false; 
    91             return false; 
    92     } 
    93         $loginData = str_replace("&#39;", "'", $loginData); 
    94     preg_match('/(.*?)0; url=\'(.*?)\'"/is', $loginData, $matcher); 
    95         $this->nextURL = $matcher[2]; 
    96      
    97         if (!$this->nextURL) { 
    98             $this->loggedIn = false; 
    99             return false; 
    100         } 
    101     if (!$this->nosey->loadPage($this->nextURL)) { 
    102       $this->loggedIn = false; 
    103             return false; 
    104     } 
    105      
    106         return true; 
    107   } 
    108  
    109   function get_unconfirmed_subscribers() { 
    110     if(! $this->loggedIn && !($this->nosey->isReady)) { 
    111             echo 'Cannot run without logging or nosey being instantiated.'; 
    112             return false; 
    113         } 
    114     return $this->newAccount ? $this->get_unconfirmed_subscribers_new() : $this->get_unconfirmed_subscribers_old(); 
    115   } 
    116    
    117     function get_unconfirmed_subscribers_new() { 
     168 
     169    function get_unconfirmed_subscribers() { 
    118170        if (!$this->nosey->loadPage($this->baseURL)) { 
    119171      $this->loggedIn = false; 
    120172            return false; 
    121173    } 
    122     $feedData = $this->nosey->getData(); 
     174    $feed_data = $this->nosey->getResponseBody(); 
     175        //NUSMisc::debug_dump("afterloadads.html", $this->nosey->getResponseBody()); 
    123176        $feeds = array(); 
    124         preg_match_all('#(.*?)fb/a/dashboard(.*?)\?id=(.*?)&(.*?)"#s', $feedData, $matcher); 
    125         $theFeeds = $matcher[3]; 
    126         $myFeeds = array_unique($theFeeds); 
    127         foreach ($myFeeds as $feed) { 
     177        preg_match_all('#(.*?)fb/a/dashboard\?id=(.*?)"#s', $feed_data, $matcher); 
     178        $the_feeds = $matcher[2]; 
     179        $my_feeds = array_unique($the_feeds); 
     180        foreach ($my_feeds as $feed) { 
    128181            $feedSubs = $this->subscriberURL . $feed; 
    129182       
    130             preg_match('#<a href="(.*?)fb/a/dashboard(.*?)\?id='.$feed.'&(.*?)"(.*?)>(.*?)</a>#s', $feedData, $namer); 
    131             $feedName = $namer[5]; 
     183            preg_match('#<a href="(.*?)fb/a/dashboard\?id='.$feed.'"(.*?)>(.*?)</a>#s', $feed_data, $namer); 
     184            $feedName = $namer[3]; 
    132185            if ($this->nosey->loadPage($feedSubs)) { 
    133                 $feeders = $this->nosey->returnData; 
     186                $feeders = $this->nosey->getResponseBody(); 
    134187                $feeders = str_replace("Email,Subscribed,Status,", "", $feeders); 
    135188                $rows = explode("\n",  $feeders); 
     
    138191                    $cols = explode(",", $row); 
    139192                    if(strcasecmp(trim($cols[2]), 'Pending Verification') == 0) { 
    140                         $feederEmails[] = $cols[0]; 
     193                        $feederEmails[] = trim($cols[0]); 
    141194                    } 
    142195                } 
     
    145198            } 
    146199        } 
     200        if($this->showemails) 
     201            NUSMisc::print_array($feeds); 
    147202        return $feeds; 
    148203    } 
    149    
    150   function get_unconfirmed_subscribers_old() { 
    151         if (! $this->nosey->loadPage($this->nextURL)) { 
    152             echo "OOPS seems something went wrong or we cannot fetch your subscribers. Please try again."; 
    153             return false; 
    154         } 
    155  
    156         $feedData = $this->nosey->getData(); 
    157         $feeds = array(); 
    158         preg_match_all('#(.*?)fb/a/dashboard(.*?)\?id=(.*?)"#s', $feedData, $matcher); 
    159         $theFeeds = $matcher[3]; 
    160         $myFeeds = array_unique($theFeeds); 
    161         foreach ($myFeeds as $feed) { 
    162             $feedSubs = $this->subscriberURL . $feed; 
    163             preg_match('#<a href="(.*?)fb/a/dashboard(.*?)\?id='.$feed.'"(.*?)>(.*?)</a>#s', $feedData, $namer); 
    164             $feedName = $namer[4]; 
    165             if ($this->nosey->loadPage($feedSubs)) { 
    166                 $feeders = $this->nosey->returnData; 
    167                 $feeders = str_replace("Email,Subscribed,Status,", "", $feeders); 
    168                 $rows = explode("\n",  $feeders); 
    169                 $feederEmails = array(); 
    170                 foreach($rows as $row) { 
    171                     $cols = explode(",", $row); 
    172                     if(strcasecmp(trim($cols[2]), 'Pending Verification') == 0) { 
    173                         $feederEmails[] = $cols[0]; 
    174                     } 
    175                 } 
    176                 $feeds[$feedName]['id'] = $feed; 
    177                 $feeds[$feedName]['emails'] = $feederEmails; 
    178             } 
    179         } 
    180         return $feeds; 
    181   } 
     204     
     205    function set_error_message($errormessage) { 
     206        $this->errormessage = $errormessage; 
     207    } 
     208     
     209    function print_error() { 
     210        NUSMisc::print_error($this->errormessage); 
     211    } 
     212     
     213    function add_cookie_to_CURL($handle) { 
     214        //curl_setopt($handle, CURLOPT_COOKIE, $this->cookies_to_string($this->get_cookies())); 
     215        curl_setopt($handle, CURLOPT_COOKIEJAR, $this->cookiefile); 
     216        curl_setopt($handle, CURLOPT_COOKIEFILE, $this->cookiefile); 
     217        curl_setopt($handle, CURLOPT_FOLLOWLOCATION, false); 
     218    } 
     219     
     220    function set_cookies($cookies) { 
     221        $this->cookies = $cookies; 
     222    } 
     223     
     224    function get_cookies() { 
     225        return $cookies; 
     226    } 
     227     
     228    function cookies_to_string($cookies) { 
     229        $cookies_header = ''; 
     230        foreach ( (array) $cookies as $cookie ) { 
     231            $cookies_header .= $cookie->getHeaderValue() . '; '; 
     232        } 
     233        $cookies_header = substr( $cookies_header, 0, -2 ); 
     234        $this->cookies = $cookies; 
     235    } 
     236     
     237    function delete_cookies() { 
     238        @unlink($this->cookiefile); 
     239    } 
     240     
     241    function is_login_failure($response) { 
     242        preg_match('/(.*?)The username or password you entered is incorrect(.*?)"/is', $response, $matcher); 
     243    if($matcher) { 
     244            return true; 
     245    } 
     246        preg_match('/(.*?)Enter the letters as they are shown in the image above(.*?)"/is', $response, $matcher); 
     247        if($matcher) { 
     248            return true; 
     249    } 
     250        return false; 
     251    } 
     252     
     253    function is_cookie_failure($response) { 
     254        preg_match('/(.*?)Clearing cache and cookies(.*?)"/is', $response, $matcher); 
     255    if($matcher) { 
     256            return true; 
     257    } 
     258        return false; 
     259    } 
     260     
    182261} 
    183262?> 
  • notify-uncofirmed-subscribers/trunk/lib/class.nus.base.php

    r120053 r214120  
    66 * Author: keith 
    77 * Project: Notify Unconfirmed subscribers 
     8 * 
     9 * Modified: 5th March, 2010 
     10 * Some part of the Header and Cookie Logic copied from core WP_HTTP class 
     11 * Still using this as this only works with cUrl right now and I need control over redirection 
    812 */ 
    913 
    1014class nus_Base { 
    1115 
    12     var $isReady; 
     16    var $URL; 
     17    var $rawResponse; 
     18    var $responseBody; 
     19    var $responseCode; 
     20    var $responseHeaders; 
     21    var $cookies; 
     22    var $userAgent; 
     23    var $debugMode = false; 
     24    var $cookiefile; 
     25 
    1326    var $cURL; 
    14     var $verifySSL = false; 
    15     var $referrer; 
    16     var $cookieLoc; 
    17     var $URL; 
    18     var $isPost = false; 
    19     var $postData; 
    20     var $returnData; 
    21  
    22     function nus_Base($referrer, $cookieLoc) { 
    23         $this->isReady = true; 
    24         $this->referrer = $referrer; 
    25     $cookiefile = tempnam("./", $cookieLoc); 
    26         $this->cookieLoc = $cookiefile; 
    27     } 
    28  
    29     function init_cUrl($referrer, $cookieLoc) { 
    30         $this->cURL = curl_init();       
    31         $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; 
    32         $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
     27    function nus_Base($cookiefile) { 
     28        $this->cookiefile = $cookiefile; 
     29        //$this->init_http_client(); 
     30        $this->userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6'; 
     31    } 
     32     
     33    function init_http_client() { 
     34        $this->cURL = curl_init(); 
     35        if(!$this->cookiefile) { 
     36            echo "Wrong method used to call me in init."; 
     37            return false; 
     38        } 
     39        $header[] = "Accept: text/xml,application/xml,application/xhtml+xml,"; 
     40        $header[] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
    3341        $header[] = "Cache-Control: max-age=0"; 
    3442        $header[] = "Connection: keep-alive"; 
     
    3947         
    4048        curl_setopt($this->cURL, CURLOPT_SSL_VERIFYPEER, false); 
    41         curl_setopt($this->cURL, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'); 
     49        curl_setopt($this->cURL, CURLOPT_SSL_VERIFYHOST, false); 
     50        curl_setopt($this->cURL, CURLOPT_USERAGENT, $this->userAgent); 
    4251        curl_setopt($this->cURL, CURLOPT_HTTPHEADER, $header); 
    4352        curl_setopt($this->cURL, CURLOPT_REFERER, '.$referrer.'); 
    4453        curl_setopt($this->cURL, CURLOPT_ENCODING, 'gzip,deflate'); 
    4554        curl_setopt($this->cURL, CURLOPT_AUTOREFERER, true); 
    46     curl_setopt($this->cURL, CURLOPT_FOLLOWLOCATION, true); 
     55    curl_setopt($this->cURL, CURLOPT_FOLLOWLOCATION, false); 
    4756        curl_setopt($this->cURL, CURLOPT_RETURNTRANSFER, 1); 
    4857        curl_setopt($this->cURL, CURLOPT_TIMEOUT, 10); 
    49         curl_setopt($this->cURL, CURLOPT_COOKIEJAR, $cookieLoc); 
    50         curl_setopt($this->cURL, CURLOPT_COOKIEFILE, $cookieLoc); 
    51     } 
    52  
     58        curl_setopt($this->cURL, CURLOPT_MAXREDIRS, 5); 
     59        curl_setopt($this->cURL, CURLOPT_COOKIEJAR, $this->cookiefile); 
     60        curl_setopt($this->cURL, CURLOPT_COOKIEFILE, $this->cookiefile); 
     61        curl_setopt($this->cURL, CURLOPT_HEADER, 1); 
     62    } 
     63 
     64    function loadPage($URL, $isPost = false, $postData = array()) { 
     65        $this->URL = $URL; 
     66        $this->init_http_client(); 
     67        if (!$this->cURL || !$this->URL) { 
     68            echo "Wrong method used to call me on page."; 
     69            return false; 
     70        } 
     71         
     72        if($this->debugMode) { 
     73            echo "Loading $URL<br />"; 
     74        } 
     75        curl_setopt($this->cURL, CURLOPT_URL, $this->URL); 
     76        if ($isPost) { 
     77            if ( ! version_compare(phpversion(), '5.1.2', '>=') ) 
     78                    $postData = _http_build_query($postData, null, '&'); 
     79            else 
     80                $postData = http_build_query($postData, null, '&'); 
     81            curl_setopt($this->cURL, CURLOPT_POSTFIELDS, $postData); 
     82        } 
     83         
     84        if(curl_error($this->cURL)) { 
     85            return false; 
     86        } 
     87         
     88        $this->rawResponse = curl_exec($this->cURL); 
     89        if ( !empty($this->rawResponse) ) { 
     90            $parts = explode("\r\n\r\n", $this->rawResponse); 
     91            $headerLength = curl_getinfo($this->cURL, CURLINFO_HEADER_SIZE); 
     92            $theHeaders = trim( substr($this->rawResponse, 0, $headerLength) ); 
     93            $this->setResponseBody(substr( $this->rawResponse, $headerLength )); 
     94            if ( false !== strrpos($theHeaders, "\r\n\r\n") ) { 
     95                $headerParts = explode("\r\n\r\n", $theHeaders); 
     96                $theHeaders = $headerParts[ count($headerParts) -1 ]; 
     97            } 
     98            $all_headers = WP_Http::processHeaders($theHeaders); 
     99            $this->setResponseHeaders($all_headers['headers']); 
     100            $this->setCookies($all_headers['cookies']); 
     101        }  
     102         
     103        $this->setResponseCode(curl_getinfo($this->cURL, CURLINFO_HTTP_CODE )); 
     104        curl_close($this->cURL); 
     105        return true; 
     106         
     107    } 
     108 
     109    function loadPageA($URL, $isPost = false, $postData = array(), $headers = array()) { 
     110        $this->resetResponse(); 
     111        $this->setURL($URL); 
     112        if(!$this->URL) { 
     113            echo "Wrong method used to call me."; 
     114            return false; 
     115        } 
     116        if($this->getCookies()) { 
     117            $cookies = $this->getCookies(); 
     118            $cookies_header = ''; 
     119            foreach ( (array) $cookies as $cookie ) { 
     120                $cookies_header .= $cookie->getHeaderValue() . '; '; 
     121            } 
     122            $cookies_header = trim($cookies_header); 
     123            //$cookies_header = substr( $cookies_header, 0, -2 ); 
     124        } 
     125        $headers['Cookie'] = $cookies_header; 
     126        $this->cookies = ""; 
     127        if(!$isPost) { 
     128            $response = $this->http_client->request($URL, array('user-agent' => $this->userAgent, 'sslverify' => false, 'headers' => $headers)); 
     129        } 
     130        else { 
     131            $response = $this->http_client->request( $URL, array('user-agent' => $this->userAgent, 'sslverify' => false, 'method' => 'POST', 'body' => $postData, 'headers' => $headers) ); 
     132        } 
     133        $this->rawResponse = $response; 
     134        if($response) { 
     135            $this->setResponseBody($response['body']); 
     136            $this->setResponseCode($response['response']['code']); 
     137            $this->setResponseHeaders($response['headers']); 
     138            $this->setCookies($response['cookies']); 
     139        } 
     140        //return true only if we get a 200 status code 
     141        if($this->responseCode == 200 || $this->responseCode == 302) { 
     142            return true; 
     143        } 
     144        else { 
     145            return false; 
     146        } 
     147    } 
     148 
     149     
    53150    function setURL($URL) { 
     151        if($this->debugMode)  
     152            echo "Loading $URL<br />"; 
    54153        $this->URL = $URL; 
    55         curl_setopt($this->cURL, CURLOPT_URL, $this->URL); 
    56154    } 
    57155 
    58156    function getURL() { 
    59         if (!$this->cURL || !$this->URL) { 
    60             echo "Wrong method used to call me."; 
    61             return false; 
    62         } 
    63  
    64157        return $this->URL; 
    65158    } 
    66159     
    67     function getData() { 
    68         return $this->returnData; 
    69     } 
    70  
    71     function loadPage($URL, $isPost = false, $postData = '') { 
    72         $this->URL = $URL; 
    73  
    74         $this->init_cUrl($this->referrer, $this->cookieLoc); 
    75         curl_setopt($this->cURL, CURLOPT_URL, $this->URL); 
    76         if (!$this->cURL || !$this->URL) { 
    77             echo "Wrong method used to call me."; 
    78             return false; 
    79         } 
    80         if ($isPost) { 
    81             curl_setopt($this->cURL, CURLOPT_HEADER, 1); 
    82             curl_setopt($this->cURL, CURLOPT_POSTFIELDS, $postData); 
    83         } 
    84          
    85         $this->returnData = curl_exec($this->cURL); 
    86     $httpCode = curl_getinfo($this->cURL, CURLINFO_HTTP_CODE); 
    87      
    88         /*$rand = $this->random(); 
    89         $handle = fopen('D:/test/'.$rand, 'w'); 
    90         fwrite($handle, $this->returnData); 
    91         fclose($handle);*/ 
    92         if(curl_error($this->cURL)) { 
    93             return false; 
    94         } 
    95         curl_close($this->cURL); 
    96          
    97         return true; 
    98     } 
    99  
    100     /** create a random name **/ 
    101     function random() { 
    102         $chars = "abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ023456789"; 
    103         srand((double) microtime() * 1000000); 
    104         $i = 0; 
    105         $rand = ''; 
    106  
    107         while ($i <= 7) { 
    108             $num = rand() % 33; 
    109             $tmp = substr($chars, $num, 1); 
    110             $rand = $rand . $tmp; 
    111             $i++; 
    112         } 
    113         return $rand; 
     160    function setResponseBody($responseBody) { 
     161        if($this->debugMode) { 
     162            echo "Response Body for ".$this->getURL."<br />"; 
     163            echo "<br/>------------------------------------------------------------------------<br/>"; 
     164            //echo $responseBody; 
     165            echo "<br/>------------------------------------------------------------------------<br/>"; 
     166        } 
     167        $this->responseBody = $responseBody; 
     168    } 
     169     
     170    function getResponseBody() { 
     171        return $this->responseBody; 
     172    } 
     173     
     174    function getResponseCode() { 
     175        return $this->responseCode; 
     176    } 
     177     
     178    function setResponseCode($responseCode) { 
     179        if($this->debugMode) { 
     180            echo "Response Code for ".$this->getURL." is $responseCode<br />"; 
     181        } 
     182        $this->responseCode = $responseCode; 
     183    } 
     184     
     185    function getResponseHeaders() { 
     186        return $this->responseHeaders; 
     187    } 
     188     
     189    function setResponseHeaders($responseHeaders) { 
     190        if($this->debugMode) { 
     191            echo "Response Headers for ".$this->getURL."<br />"; 
     192            NUSMisc::print_array($responseHeaders); 
     193        } 
     194        $this->responseHeaders = $responseHeaders; 
     195    } 
     196     
     197    function getCookies() { 
     198        return $this->cookies; 
     199    } 
     200     
     201    function setCookies($cookies) { 
     202        if($this->debugMode) { 
     203            echo "Response Cookies for ".$this->getURL."<br />"; 
     204            NUSMisc::print_array($cookies); 
     205        } 
     206        $this->cookies = $cookies; 
     207    } 
     208     
     209    function getRawResponse() { 
     210        return $this->rawResponse; 
     211    } 
     212 
     213    function resetResponse() { 
     214        $this->responseBody = ""; 
     215        $this->responseCode = ""; 
     216        $this->responseHeader = ""; 
     217        //$this->cookies = ""; 
    114218    } 
    115219 
    116220} 
     221 
    117222?> 
Note: See TracChangeset for help on using the changeset viewer.