2012-03-12 2 views
2

Я использую следующий код для удаленного выполнения сценария:Выполнение .cfm скрипт с PHP

$url = 'https://x.x.com/update_something.cfm?something_id=' . $id; 
      $ch = curl_init(); 
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
      $response = curl_exec($ch); 
      curl_close($ch); 

Сценарий, однако, это не выполняется (когда я посещаю URL выше в браузере, Я вижу обновленные результаты, когда делаю это из скрипта php, ничего не происходит. PHP не дает мне никаких ошибок, но он просто заканчивает выполнение. Что мне не хватает?

+1

Попробуйте включить опцию 'CURLOPT_VERBOSE', чтобы получить некоторую отладочную информацию o, а также проверить возвращаемое значение 'curl_error()', чтобы быть уверенным. Если в запросе нет ничего очевидного, попробуйте изменить заголовки запросов, чтобы они были более похожи на запрос вашего браузера, иногда скрипты проклинали такие вещи, как заголовки «User-Agent» и «Referer». –

+0

Выполняйте 'var_dump ($ response)' после вызова exec. если он выводит логическое значение false, то с curl-вызовом что-то не работает. Вы можете получить текст ошибки с помощью 'echo curl_error ($ ch)' –

+0

Спасибо, я запустил его и получил «тайм-аут соединения SSL», не знаю, как это решить, я попытался CURLOPT_TIMEOUT с большим числом, но он не работает :( – luqita

ответ

0

Добавление curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); заставило его работать! :)

+0

Обратите внимание, что [отключение VERIFYPEER или VERIFYHOST делает соединение уязвимым для атак MITM] (http://stackoverflow.com/a/13742121/372643). – Bruno

Смежные вопросы