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
    Responsive Images: The Ultimate Guide

    Chances are that any Web designers using our Ghostlab browser testing app, which allows seamless testing across all devices simultaneously, will have worked with responsive design in some shape or form. And as today's websites and devices become ever more varied, a plethora of responsive images...

  • By
    Create Namespaced Classes with MooTools

    MooTools has always gotten a bit of grief for not inherently using and standardizing namespaced-based JavaScript classes like the Dojo Toolkit does.  Many developers create their classes as globals which is generally frowned up.  I mostly disagree with that stance, but each to their own.  In any event...

Incredible Demos

  • By
    MooTools Star Ratings with MooStarRating

    I've said it over and over but I'll say it again:  JavaScript's main role in web applications is to enhance otherwise boring, static functionality provided by the browser.  One perfect example of this is the Javascript/AJAX-powered star rating systems that have become popular over the...

  • By
    MooTools History Plugin

    One of the reasons I love AJAX technology so much is because it allows us to avoid unnecessary page loads.  Why download the header, footer, and other static data multiple times if that specific data never changes?  It's a waste of time, processing, and bandwidth.  Unfortunately...

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!