2013-12-16 1 views
0

У меня есть CMS по одному URL-адресу и по меньшей мере 68 сайтов свойств, которые запускают эту CMS каждый в разных доменах.CURL не работает, чтобы захватить содержимое HTML

Я пытаюсь захватить форму одного из сайтов недвижимости для отображения в модальной в CMS (чтобы другие свойства, чтобы увидеть форму, чтобы решить, если они хотят, чтобы включить его.)

на начальной загрузке страницы, у меня есть этот скрипт:

(function() { 
    $(document).on('click', '.btnModal', function(e){ 
     e.preventDefault(); 
     var formID = $(this).data('form'); 

     $.ajax({ 
      url: "<?= site_url('staffer/get_form_modal'); ?>", 
      type: "POST", 
      data: { fid: formID }, 
      success: function(msg){ 
       $('#modal-body').html(msg); 
       $('#myModal').modal('show'); 
      } // end success 
     }); 
    }); 
})(); // end self-invoking anonymous function 

в контроллере, это код CURL:

public function get_form_modal($fid = null){ 
    if(!$fid){ $fid = $this->input->post('fid'); } 
    $form = $this->istaff_m->get_modal_form($fid); 
    $html = ''; 

    $url = $this->boilerplate['propertyInfo'][0]['istaffURL'] . 'staff/' . $form[0]->URL; 
    // $url echos http://istaff.edrtest.com/staff/res_lr 
    $url = (string) trim(strip_tags($url)); 
    $url = str_replace('&amp;', '&', $url); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
    curl_setopt($ch, CURLOPT_NOBODY, false); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result= curl_exec ($ch); 
    if($result === false){ 
     echo "Curl error: " . @curl_error($ch); 
    } // end if 
    curl_close ($ch); 

    echo $result; 
} // end get_form_modal function 
/*-----------------------------------------------------*/ 

модальное всплывает с его заголовком и пустым телом. Нет сообщения об ошибке ... просто пустое.

Firebug показывает, что идентификатор формы отправлен и пустой ответ - опять же, нет сообщения об ошибке.

Любая помощь приветствуется!

UPDATE: Использование SSH на сервере, я побежал 'локон -I' http://istaff.edrtest.com/staff/res_lr "и вернулся следующее:

HTTP/1.1 200 OK 
Server: nginx 
Date: Mon, 16 Dec 2013 16:15:56 GMT 
Content-Type: text/html 
Connection: keep-alive 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
Refresh: 0;url=http://istaff.edrtest.com/user/log_in 
Set-Cookie: PHPSESSID=kbc674bc07nn4aeh2k5rsur685; path=/ 
X-Powered-By: PleskLin 
+0

Попробуйте добавить 'curl_setopt ($ ch, CURLOPT_VERBOSE, true);'. Посмотрите, поможет ли вам отладка. – Abs

+0

Без изменений ... все еще нет сообщения об ошибке. – jgravois

+0

Проверьте, работает ли ваш запрос CURL без AJAX, вызвав метод напрямую. – Abs

ответ

0

С response-- Refresh: 0; URL = http://istaff.edrtest.com/user/log_in

Дон Вы думаете, что вам нужно быть зарегистрированным пользователем для выполнения этой операции завивки?

Кроме того, уверены ли вы, что для этого требуется операция GET? Это может быть операция POST (я советую вам проверить это снова).

+0

, так как я контролирую оба URL, я могу контролировать и то. Но для дальнейшего отладки не должно быть возвращено, по крайней мере, страница входа в систему? Я становлюсь НИЧЕГО. – jgravois

+0

Вы ничего не получите. Потому что вашему браузеру предлагается перенаправить URL-адрес входа через HTTP-заголовок Refresh. Теперь его обязанность сделать это перенаправление из вашего кода :-) –

+0

Могу ли я передавать учетные данные через CURL? – jgravois

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