cURL / Mailing Lists / curl-and-php / Single Mail

curl-and-php

Problem with curl_exec and server setup

From: Yazmin Media <ywickham_at_gmail.com>
Date: Wed, 13 May 2009 11:55:14 -0400

I'm working with the Twitter api and running into a weird issue with curl.
At first, I thought it was the code, however, after working with it with the
Twitter Dev Talk Google group, I decided to try the code out on another
server and found that it worked just fine.

So I need help troubleshooting, I'm just not sure where to start.

This is what is going on...using PHP, I know that I can successfully get a
feed of a user's latest statuses using this code:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERPWD, "$this->Username:$this->Password");

    $xml = curl_exec($ch);

    $data = simplexml_load_string($xml);

However, when I send an update, the same code, with the addition of a line
for CURLOPT_POST, returns bool(false):

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERPWD, "$this->Username:$this->Password");

    curl_setopt($ch, CURLOPT_POST, 1);
    $xml = curl_exec($ch);

    $data = simplexml_load_string($xml);

(I tested that by adding a var_dump($data) after the last line.)

If I add:

    $Headers = curl_getinfo($ch);
    var_dump($Headers);

I also get:

array(19) {
  ["url"]=>
  string(59) "http://twitter.com/statuses/update.xml?status=testing+1+2+3"
  ["http_code"]=>
  int(0)
  ["header_size"]=>
  int(0)
  ["request_size"]=>
  int(218)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.122609)
  ["namelookup_time"]=>
  float(1.8E-5)
  ["connect_time"]=>
  float(0.122528)
  ["pretransfer_time"]=>
  float(0.122531)
  ["size_upload"]=>
  float(0)
  ["size_download"]=>
  float(0)
  ["speed_download"]=>
  float(0)
  ["speed_upload"]=>
  float(0)
  ["download_content_length"]=>
  float(0)
  ["upload_content_length"]=>
  float(-1)
  ["starttransfer_time"]=>
  float(0.122605)
  ["redirect_time"]=>
  float(0)

Since a successful update should only return int(200) for http_code, I then
added:

    var_dump(curl_getinfo($ch, CURLINFO_HTTP_CODE));

which returned int(0). I also checked the Twitter account and saw that the
new status was indeed posted.

At that point, I was told that it looks like I'm possibly getting return
values on a curl request other than the one posting the status update to
Twitter. Like I said, I do know that the status update is successful as it
shows up on the account, however, on this server, I'm not getting the return
values I should from the curl_exec() function.

The class I'm working with was written by David Billingham and can be found
here:

http://twitter.slawcup.com/twitter.class.phps

I am running the following:

- OSX 10.5.6
- MAMP 1.7.2
- PHP 5
- libcurl 7.18.2

Since the code works as is on another server, I thought it might have
something to do with how curl is setup in MAMP or MAMP itself...tackling
curl first. Suggestions?

Thanks!
Yazmin

_______________________________________________
http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
Received on 2009-05-13