2012-06-04 3 views
0

채널 관리자에게 로그인하려고하지만 오류 : HTTP/1.1 302 Moved Temporarily을 출력합니다.채널 관리자에 로그인

하지만 지난 주 완벽하게 실행되어 로그인하고 데이터를 검색하고 다시 실행하면 오류가 발생합니다. 난 당신이 채널 관리자에서 같은 업데이 트를 처리하고 있으므로, 리디렉션을 수행해야한다고 생각

$pages = array('home' => 
'https://login.channeladvisor.com/?gotourl=https%3a%2f%2fcomplete.channeladvisor.com%2f', 
      'login' => 
'https://login.channeladvisor.com/?gotourl=https%3a%2f%2fcomplete.channeladvisor.com%2f', 
      'data' => 
    'https://merchant.channeladvisor.com/AM/MyInventory/View_Inventory.aspx?apid=32001263'); 

    $ch = curl_init(); 
    //Set options for curl session 
    $options = array(CURLOPT_USERAGENT => 'Mozilla/12.0 (compatible; MSIE 6.0; Windows NT 5.1)', 
     CURLOPT_SSL_VERIFYPEER => FALSE, 
     CURLOPT_SSL_VERIFYHOST => 2, 
     CURLOPT_HEADER => TRUE, 
     CURLOPT_RETURNTRANSFER => TRUE, 
     CURLOPT_COOKIEFILE => 'cookies.txt', 
     CURLOPT_COOKIEJAR => 'cookies.txt'); 

//Hit home page for session cookie 
$options[CURLOPT_URL] = $pages['home']; 
curl_setopt_array($ch, $options); 
//curl_exec($ch); 

//Login 
$options[CURLOPT_URL] = $pages['login']; 
$options[CURLOPT_POST] = TRUE; 
$options[CURLOPT_POSTFIELDS] = '[email protected]&password=xxxxxxx'; 
$options[CURLOPT_FOLLOWLOCATION] = false; 
curl_setopt_array($ch, $options); 
curl_exec($ch); 

//Hit data page 
$options[CURLOPT_URL] = $pages['data']; 
curl_setopt_array($ch, $options); 
$data = curl_exec($ch); 

//Output data 
echo $data; 

//Close curl session 
curl_close($ch); 

답변

-1

:

여기 내 코드입니다.

curl을 사용하여 채널 관리자에 로그인하는 일반적인 방법이라고 생각하지 않으므로 항상 각 채널 관리자 업데이트에서 코드를 업데이트해야합니다. Google Analytics 데이터를 검색 할 때만 컬을 사용할 수 있다는 것을 기억합니다. 로그인 시스템을 업데이트 할 때마다 자신의 컬 로그인 메소드를 다시 작성해야합니다. 지루함.

말풍선이있는 Header: Location 다음에 대해 this answer을 읽을 수 있습니다. 기본적으로 :

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$a = curl_exec($ch); 
if(preg_match('#Location: (.*)#', $a, $r)) 
$l = trim($r[1]);