Код PHP cURL не работает в сети, но не на локальном хосте. Пожалуйста помоги! - PullRequest
0 голосов
/ 19 июля 2010

Не могу понять, почему этот код работает локально на моем ПК (localhost), а не в сети на общедоступном сервере?Это может быть проблема версии PHP?Благодарю за помощь!

$post_data = array('item_type_id' => '8', 'string_key' => 'Test Nyckel2', 'string_value' => 'Test Varde2', 'string_extra' => 'Test Extra', 'numeric_extra' => 'Test Numeric Extra', 'is_public' => true, 'is_public_for_contacts' => true);

    $post_data = json_encode(array('item' => $post_data), JSON_FORCE_OBJECT);

    $c = curl_init('http://example.com/items.json'); 

    curl_setopt($c, CURLOPT_VERBOSE, 1);
    curl_setopt($c, CURLOPT_COOKIE, 'fb_cookie='.$fb_code);
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);

    curl_exec($c);

    curl_close($c);

Ответы [ 3 ]

1 голос
/ 19 июля 2010

Я вижу, вы используете параметр options в вызове json_encode ().

Однако вот что говорит PHP doc (http://www.php.net/manual/en/function.json-encode.php):

5.3.0 The options parameter was added.

Итак, ваш код PHP используетнеопределенная константа, JSON_FORCE_OBJECT?

1 голос
/ 19 июля 2010

curl_exec возвращает FALSE, если запрос не выполнен по какой-либо причине.Затем вы можете получить коды ошибок и сообщения с помощью curl_error() и curl_errno():

if (curl_exec($c) === FALSE) {
    die("Curl failed: " . curl_error($c));
}

Никогда не предполагайте, что вызовы curl будут успешными.Всегда проверяйте возвращаемое значение на случай, если что-то взорвалось.Даже если curl настроен правильно, сбой в сети мог бы прервать соединение, возможно, удаленный сервер не работает, у брандмауэра плохой день и т. Д. *

0 голосов
/ 19 июля 2010

Установлена ​​ли на сервере библиотека cURL, которая не работает?

Если вы не можете сказать, используйте phpinfo (); функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...