GoDaddy Hosting Tip – Using CURL On GoDaddy Shared Hosting

By  on  

I want to throw a quick tip out there to anyone that plans to use cURL on GoDaddy hosting servers. I've been developing a shopping cart and ported the site from my development server to the hosting server. I ran into a huge problem when trying to get the cart to connect to UPS for real-time shipping quotes. What was the problem? The connection between my PHP (GoDaddy Server) and the UPS server wasn't being made.

After a few lifetimes hours of searching, I found the answer. GoDaddy requires additional cURL code to use their proxy server. Below is their example of the code you'll need:

$url = 'https://www.paypal.com';
$ch = curl_init();
curl_setopt($ch,CURLOPT_VERBOSE,1);
//curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,true);
curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
curl_setopt($ch,CURLOPT_PROXY,'http://proxy.shr.secureserver.net:3128');
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_TIMEOUT,120);
$result = curl_exec($ch);
curl_close($ch);

You can read more here. I know this isn't the usual poetry I post, but one goal with my blog is to save other developers time when possible.

Recent Features

  • By
    5 HTML5 APIs You Didn’t Know Existed

    When you say or read "HTML5", you half expect exotic dancers and unicorns to walk into the room to the tune of "I'm Sexy and I Know It."  Can you blame us though?  We watched the fundamental APIs stagnate for so long that a basic feature...

  • By
    Being a Dev Dad

    I get asked loads of questions every day but I'm always surprised that they're rarely questions about code or even tech -- many of the questions I get are more about non-dev stuff like what my office is like, what software I use, and oftentimes...

Incredible Demos

  • By
    RealTime Stock Quotes with MooTools Request.Stocks and YQL

    It goes without saying but MooTools' inheritance pattern allows for creation of small, simple classes that possess immense power.  One example of that power is a class that inherits from Request, Request.JSON, and Request.JSONP:  Request.Stocks.  Created by Enrique Erne, this great MooTools class acts as...

  • By
    CSS Vertical Centering

    Front-end developing is beautiful, and it's getting prettier by the day. Nowadays we got so many concepts, methodologies, good practices and whatnot to make our work stand out from the rest. Javascript (along with its countless third party libraries) and CSS have grown so big, helping...

Discussion

  1. Roberto Flores

    Thanks. It solved my problem connecting to authorize.net.

  2. Chris

    Hi David,

    Thought you had save me an mess of heartache when I stumbled upon this post. However, it appears that GoDaddy have changed the way they do things as of 10th Sept 2008.

    see http://help.godaddy.com/article/4764

    The following code now works fine….. on initial testing anyway.

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, rtrim( $fields, "& " )); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    

    But thanks for the thought.
    Chris

  3. Thanks! I was looking for a solution to this all last night. Plugged in the code and it worked! Thanks again.

  4. Dear lord! I spent an hour on the phone with GoDaddy and they seem to have no clue that this code exists. Thank you!

  5. juan

    @Chris: k tal fijate que tengo este codigo pero no me jala

    	$query_vals = array(
    		'cIdioma' => 'Esp',
    	    'cCodPosOri' => $cpOrigen,
    	    'cCodPosDes' => $cpDestino,
    	    'cTipoEnvio' => $Tipo,
    	    'nPeso' => $Peso,
    	    'nAlto' => $Alto,
    	    'nLargo' => $Largo,
    	    'nAncho' => $Ancho,
    	    'submit' => 'Calcular'
    	);
    	$request = '';
    
    	// Generate the POST string
    	foreach($query_vals as $key => $value) {
    	    $request .= $key.'='.urlencode($value).'&';
    	}
         
    
    	// Chop of the trailing ampersand
    	$request = rtrim($request, '&');
    
    
    
    $url="http://tarifas";
    $ch = curl_init($url);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    
  6. juan

    @Chris: me dices que no reconoce el array

  7. R Zaman

    hello friends,

    i was trying to send a xml file from godaddy server to another ftp server using cURL.

    But, it’s not working, can anyone help me on this issue.

    Below is my code:

    please anyone help me.

    my email id: rzrokon@gmail.com

  8. R Zaman

    Hello friends,

    I was trying to send a xml file from godaddy server to another ftp server using cURL. It’s working on other server.

    But, it’s not working on godaddy, can anyone help me on this issue.

    Below is my code:

    please anyone help me.

    my email id: rzrokon@gmail.com

  9. it works like a charm

  10. dominio público

    Turning off VERIFY_PEER is not a good solution. You should be providing a CA chain so your payments don’t get man-in-the-middled.

  11. Hi,
    i read your code i tried it but its shown error what should exatly write for my host to connect to my server ?
    there is my curl :

     'Error', 'Error' => curl_error($curl)); 
        else if (empty($response)) $obj = (object) array('Result' => 'Error', 'Error' => 'Connection failed'); 
        else $obj = json_decode($response);
        curl_close($curl);
        return $obj;
      }
    
    
    ?>
    

    i did as you wrote with the proxy but the error shown that its refused to connect to the curl

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!