jjk2 Posted January 4, 2009 Share Posted January 4, 2009 i have a simple curl script thats proven to work. it basically logs in to ebay.com it runs fine on commandline through WAMPserver running on my windows, and my other windows servers, but it will not work on any linux server. the script executes, but the result is that i am not logged on to ebay when i run the script on linux server. Quote Link to comment Share on other sites More sharing options...
trq Posted January 4, 2009 Share Posted January 4, 2009 Have you got error reporting on and if so, do you get an error? Quote Link to comment Share on other sites More sharing options...
jjk2 Posted January 4, 2009 Author Share Posted January 4, 2009 i get no error whatsoever..... Quote Link to comment Share on other sites More sharing options...
priti Posted January 4, 2009 Share Posted January 4, 2009 have you checked you error_log on server. If the request is not served then error_logs will contain some pointers for you. Thanks Quote Link to comment Share on other sites More sharing options...
GingerRobot Posted January 4, 2009 Share Posted January 4, 2009 And you did turn on error_reporting, yes? It could be that the cURL extension wasn't installed, for example. Since you're logging into ebay, it could also be an SSL issue - are you ignoring ebay's certificate or providing certificates to verify against? Are you checking the return of curl_error()? Basically, we could do with seeing some code. Quote Link to comment Share on other sites More sharing options...
jjk2 Posted January 5, 2009 Author Share Posted January 5, 2009 hi this is the problem....exact same thing http://forums.devnetwork.net/viewtopic.php?f=1&t=89757&p=492636 Quote Link to comment Share on other sites More sharing options...
jjk2 Posted January 5, 2009 Author Share Posted January 5, 2009 i have a problem similar to this guy http://forums.devnetwork.net/viewtopic.php?f=1&t=89757&p=492636 using verbose output, i see that LINUX webserver is making GET where as in windows localhost (Wampserver), it used POST. i also test it out on a windows server, and the script works fine.... of course, the script running on linux executes fine, but because its using GET, it fails. the windows one succeeds because it uses POST method, as it should. it uses LIB_http.php, a library from a php book. i heard that setting CURLOPT_POST after CURLOPT_POSTFIELDS, causes problems....i discovered that post was after curlop_postfields as below....maybe this was causing problems in linux webserver? <?php define("WEBBOT_NAME", "Googlebot/2.1 (http://www.googlebot.com/bot.html)"); define("CURL_TIMEOUT", 200); define("COOKIE_FILE", "C:/wamp/www/tor/cookie.txt"); define("HEAD", "HEAD"); define("GET", "GET"); define("POST", "POST"); define("EXCL_HEAD", FALSE); define("INCL_HEAD", TRUE); function http_get($target, $ref) { return http($target, $ref, $method="GET", $data_array="", EXCL_HEAD); } function http_get_withheader($target, $ref) { return http($target, $ref, $method="GET", $data_array="", INCL_HEAD); } function http_get_form($target, $ref, $data_array) { return http($target, $ref, $method="GET", $data_array, EXCL_HEAD); } function http_get_form_withheader($target, $ref, $data_array) { return http($target, $ref, $method="GET", $data_array, INCL_HEAD); } function http_post_form($target, $ref, $data_array) { return http($target, $ref, $method="POST", $data_array, EXCL_HEAD); } function http_post_withheader($target, $ref, $data_array) { return http($target, $ref, $method="POST", $data_array, INCL_HEAD); } function http_header($target, $ref) { return http($target, $ref, $method="HEAD", $data_array="", INCL_HEAD); } function http($target, $ref, $method, $data_array, $incl_head) { # Initialize PHP/CURL handle $ch = curl_init(); # Prcess data, if presented if(is_array($data_array)) { # Convert data array into a query string (ie animal=dog&sport=baseball) foreach ($data_array as $key => $value) { if(strlen(trim($value))>0) $temp_string[] = $key . "=" . urlencode($value); else $temp_string[] = $key; } $query_string = join('&', $temp_string); } # HEAD method configuration if($method == HEAD) { curl_setopt($ch, CURLOPT_HEADER, TRUE); // No http head curl_setopt($ch, CURLOPT_NOBODY, TRUE); // Return body } else { # GET method configuration if($method == GET) { if(isset($query_string)) $target = $target . "?" . $query_string; curl_setopt ($ch, CURLOPT_HTTPGET, TRUE); curl_setopt ($ch, CURLOPT_POST, FALSE); } # POST method configuration if($method == POST) { if(isset($query_string)) curl_setopt ($ch, CURLOPT_POSTFIELDS, $query_string); curl_setopt ($ch, CURLOPT_POST, TRUE); curl_setopt ($ch, CURLOPT_HTTPGET, FALSE); } curl_setopt($ch, CURLOPT_HEADER, $incl_head); // Include head as needed curl_setopt($ch, CURLOPT_NOBODY, FALSE); // Return body } curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); // Cookie management. curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE_FILE); //curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:8118"); // ENABLE TOR curl_setopt($ch, CURLOPT_TIMEOUT, CURL_TIMEOUT); // Timeout curl_setopt($ch, CURLOPT_USERAGENT, WEBBOT_NAME); // Webbot name curl_setopt($ch, CURLOPT_URL, $target); // Target site curl_setopt($ch, CURLOPT_REFERER, $ref); // Referer value curl_setopt($ch, CURLOPT_VERBOSE, FALSE); // Minimize logs curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // No certificate curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // Follow redirects curl_setopt($ch, CURLOPT_MAXREDIRS, 4); // Limit redirections to four curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Return in string # Create return array $return_array['FILE'] = curl_exec($ch); $return_array['STATUS'] = curl_getinfo($ch); $return_array['ERROR'] = curl_error($ch); # Close PHP/CURL handle curl_close($ch); # Return results return $return_array; } ?> Quote Link to comment Share on other sites More sharing options...
jjk2 Posted January 6, 2009 Author Share Posted January 6, 2009 anyone >>???? Quote Link to comment Share on other sites More sharing options...
jjk2 Posted January 7, 2009 Author Share Posted January 7, 2009 still waiting..... Quote Link to comment Share on other sites More sharing options...
GingerRobot Posted January 7, 2009 Share Posted January 7, 2009 The only thing i can obviously see wrong is that all of these test on method: if($method == HEAD) Are using an unquoted string. They should be: if($method == "HEAD") Now, given the fact that you've not mentioned you're getting a warning about that, i'm going to assume that either you don't have error_reporting set to E_ALL or that you don't have display_errors turned on or both. Go do that and run the script again. Quote Link to comment Share on other sites More sharing options...
thebadbad Posted January 7, 2009 Share Posted January 7, 2009 @Ginger He defines those constants at the top of the script. Quote Link to comment Share on other sites More sharing options...
GingerRobot Posted January 7, 2009 Share Posted January 7, 2009 You're right. I missed that. Quote Link to comment Share on other sites More sharing options...
jjk2 Posted January 8, 2009 Author Share Posted January 8, 2009 there is nothing in error_log. the script works fine on windows. but somehow the script behaves differently in linux. i've fixed 50% of it. just by moving some of the curlopt, apparently theres some bugs with curl. so i am convinced lib_http has some problems.....just dont know why it fails when it uses POST. Quote Link to comment Share on other sites More sharing options...
jjk2 Posted January 8, 2009 Author Share Posted January 8, 2009 my mistake.....linux one is using libcurl 7.15.5 windows is using 7.16 Quote Link to comment Share on other sites More sharing options...
jjk2 Posted January 8, 2009 Author Share Posted January 8, 2009 however i test it on libcurl 7.19, and still not sucessfull. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.