2014-01-24 4 views
0

Aweber에서 Curl을 사용하여 일부 사용자 정의 필드를 업데이트하려고합니다. 게시물 필드를 전달하려고하면 내 세션이 만료되었다는 것을 알 수 있습니다. 그러나이 문제없이 로그인하고 다른 직원을 수행 할 수 있습니다.CURL => 세션이 만료 된 상태에서 aweber의 가입자를 업데이트하십시오.

아마도 형식이 없으며 유효성을 검사 할 버튼이 입력 유형이 아니라 제출되는 js 함수가있는 버튼일까요? 그러나 나는 "network"=> XHR을 파이어 버그 (firebug)로 보았고 보낼 링크는 모든 형태의 매개 변수와 같다.

$str = 'data[submit]=1 
&data[Lead][prev_stop_status]=0 
&unsubscribe_lead=1 
&data[Lead]['.$m.'][name]= name 
&data[Lead]['.$m.'][email]='.$email.' 
&data[Lead]['.$m.'][note]=control panel 
&data[Lead]['.$m.'][datum1]=sdfg 
&data[Lead]['.$m.'][datum2]=qsdfqsfd 
&data[Lead]['.$m.'][datum3]=sdfgf 
&data[Lead]['.$m.'][datum4]=zrtert 
&data[Lead]['.$m.'][datum5]=dfgdf 
&data[Lead]['.$m.'][name2]=sdfgsgf 
&message_old=1 
&data[Lead]['.$m.'][message]=1001 
&sess_token='.$cookie' 

여기에 $ m은 납의 이드에 해당합니다.

$url ='https://www.aweber.com/users/leads/edit/3266822/'.$m; 

$ch = curl_init($url); 

curl_setopt($ch, CURLOPT_REFERER, 'https://www.aweber.com/users/leads'); 

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);  
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies_file);   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$str); 

echo curl_exec($ch); 

희망 사항은 충분합니다. 이해를 돕기 위해 fireburg에서 사진을 게시하고 싶지만 더 많은 평판 포인트가 필요합니다.

누구나 아이디어가 있으십니까?

편집 : 여기에 라이브 HTTP 헤더의 요청 : 5D = 0 & unsubscribe_lead

POST/사용자/리드/편집/59,321,794분의 3,266,822 데이터 % 5Bsubmit % 5D = 1 & 데이터 % 5BLead의 %의 5D % 5Bprev_stop_status의 % = 1 & 데이터 % 5BLead % 5D % 5B59321794 % 5D % 5Bname % 5D = 흑인 & 데이터 % 5B % 5 % % 5B % % 5D = + hf & 데이터 % 5BLead % 5D % 5B59321794 % 5D % 5Bdatum1 % 5D = stryrtyy & 데이터 % 5BLead % 5D % 5B59321794 % 5D % 5Bdatum2 % 5D = tttttttttt & 데이터 % 5BLead % 5D % 5B59321794 % 5D % 5Bdatum3 % 5D = sdsdfsdfsdfs,763,680,403,210 데이터 % 5BLead의 %의 5D %의 5B59321794 % 5D %의 5Bdatum4 %의 5D = dsfgdsfgd & 데이터 %의 5BLead %의 5D %의 5B59321794 %의 5D %의 5Bdatum5 % 5D = zzzzzzzzzz & 데이터 %의 5BLead %의 5D %의 5B59321794 % 5D %의 5Bname2 % 5D = lmkmlkllllll & message_old

https://www.aweber.com/users/leads/edit/3266822/59321794

POST/사용자/리드/편집/3,266,822/: 헤더 = 1 개 & 데이터 %의 5BLead %의 5D %의 5B59321794 % 5D %의 5Bmessage %의 (d) = 1 & sess_token = d18b8246230780a51e967326cf687009e9cc2d81

여기 59321794 HTTP/1.1

주최자 : www.aweber.com

사용자 에이전트 : Mozilla/5.0 (Windows NT 6.1; WOW64; rv : 25.0) Gecko/20100101 Firefox/25.0

수락 : text/html, /; q = 0.01

수락 언어 : fr, fr-fr; q = 0.8, en-us; q = 0.5, en; q = 0.3

수락 - 인코딩 : gzip을,

Content-Type을 수축 : 응용 프로그램/x-www-form-urlencoded를; 캐릭터 = UTF-8

X-함께 요청한 : XMLHttpRequest 객체

참조 자 : https://www.aweber.com/users/leads

콘텐츠 길이 : 619

쿠키 : cookie_aweber_referrer_id = 99; TS8fba11 = 0db6c7090ec415a2a74f5b65b8aeffc52c7ef8b9018afb4c52e3ecfbbd1b0f791761e990; __utma = 121506007.931755370.1390668636.1390668636.1390668636.1; __utmb = 121506007.2.10.1390668636; __utmc = 121506007; __utmz = 121506007.1390668636.1.1.utmgclid = COD4yK_kmbwCFTCWtAod7U4ApA | utmccn = (not % 20set) | utmcmd = (% 20set) | utmctr = aweber; _ga = GA1.2.931755370.1390668636; AppCookie [cookie_support] = 지원됨; TS8fba11_29 = c7dae97d9386c44fe3317a881058edd12c7ef8b9018afb4c00000000000000000052e3eb6c; __ctxpop = 1; AUTORESPSID = d18b8246230780a51e967326cf687009e9cc2d81; AppCookie [고객] = 1; AppCookie [curlis] = teststeli; kvcd = 1390668716223; km_ai = Km0KWrpCZfFJ0Q7ArZebQRtwxVE % 3D; km_uq =; km_vs = 1; km_lv = 1390668716; km_ni = 836900; ki_u = 9560e337-a9a3-16a1-44d0-1060ea2aa10c; ki_t = 1,390,668,681,618% 3B1390668681618 % 3B1390668681618 % 3B1 % 3B1

연결 : 유지하지-살아

에서 Pragma을 : 노 캐시

캐시 제어 : 노 캐시

데이터 % 5Bsubmit %의 5D를 = 1 개 & 데이터 %의 5BLead의 %의 5D %의 5Bprev_stop_status의 %의 (d) = 0 & unsubscribe_lead = 1 & 데이터 % 5BLead의 %의 5D %의 5B59321794 % 5D의 %의 5Bname %의 5D = 검둥이 & 데이터 % 5BLead의 %의 5D %의 5B59321794 %의 5D % 5Bemail % 5D = blackrunnnner %의 40gmail.com & 데이터 % 5B 독방 % 5D % 5B59321794 % 5D % 5B 참고 % 5D = + hf & 데이터 % 5BLead % 5D % 5B59321794 % 5D % 5Bdatum1 % 5D = stryrtyy & 데이터 % 5BLead % 5D % 5B59321794 % 5D % 5Bdatum2 % 5D = tttttttttt & 데이터 % 5BLead % 5D % 5B59321794 % 5D % 5Bdatum3 % = zzzzzzzzzz & 데이터 % 5BLead의 %의 5D %의 5B59321794 % 5D %의 5Bname2 %의 5D 5D = sdsdfsdfsdfs & 데이터 % 5BLead의 %의 5D %의 5B59321794 %의 5D %의 5Bdatum4 % 5D = dsfgdsfgd & 데이터 %의 5BLead %의 5D %의 5B59321794 % 5D %의 5Bdatum5 %의 5D = lmkmlkllllll & & message_old = 1 %의 데이터 5BLead %의 5D %의 5B59321794 % 5D %의 5Bmessage %의 5D = 1 = & sess_token d18b8246230780a51e967326cf687009e9cc2d81

HTTP/1.1 200 OK

날짜 : 1월 25일 (토) 2014 그리니치 표준시 17시 08분 56초

P3P : CP = "NOI ADM DEV PSAi COM NAV 우리 OTRo STP IND DEM"

만료 : 26 월을 1997년 7월 그리니치 표준시 05시 00분 0초

마지막 수정 : 2014년 1월 25일 (토) 그리니치 표준시 17시 08분 57초

캐시 제어 : 없음 매장, 노 캐시해야-의 유효성을 다시 확인 없음 - 캐시

Pragma : no-cache, No-C 통증

달라집니다, 사용자 에이전트 인코딩을 수락

콘텐츠 인코딩 : gzip을

콘텐츠 길이 : 164

연결 유지 : 제한 시간 = 3, 최대 = 100

연결 : 연결 유지

콘텐츠 유형 : 텍스트/일반

Set-Cookie : TS8fba11 = 75ec74303092e39b0609f650ba7394ad2c7ef8b9018afb4c52e3efa8bd1b0f791761e990; 경로 =/

+0

리디렉션이 있습니까? 왜냐하면이 경우에는 요리 도구 대신 쿠키 쿠키를 지정하기를 원할 수도 있습니다. 또한 : 게시 된 예제에서 데이터에 개행을 추가하는 경우 전체 게시물 문자열을 한 줄로 만들면 어떻게됩니까? – Wrikken

+0

리디렉션이 있는지 어떻게 알 수 있습니까? cookiejar도 지정하려고했지만 결과는 같습니다. 예, 나는 또한 모두 한 줄로 만들려고했습니다. –

+0

일시적으로 팔로우 위치를 사용하지 않도록 설정하고 머리글을 출력에 포함하면 이미 많은 정보를 얻을 수 있습니다. 그런 다음 다시 한번 : Awerber의 사람들에게 잘못된 점을 물어 보거나 API로 원하는 것을 할 수 있는지 확인하십시오. – Wrikken

답변

0

시도해 보셨습니까?

<?php 
//debug - remove in production! 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
//debug end 

$str = 'data[submit]=1 
&data[Lead][prev_stop_status]=0 
&unsubscribe_lead=1 
&data[Lead]['.$m.'][name]= name 
&data[Lead]['.$m.'][email]='.$email.' 
&data[Lead]['.$m.'][note]=control panel 
&data[Lead]['.$m.'][datum1]=sdfg 
&data[Lead]['.$m.'][datum2]=qsdfqsfd 
&data[Lead]['.$m.'][datum3]=sdfgf 
&data[Lead]['.$m.'][datum4]=zrtert 
&data[Lead]['.$m.'][datum5]=dfgdf 
&data[Lead]['.$m.'][name2]=sdfgsgf 
&message_old=1 
&data[Lead]['.$m.'][message]=1001 
&sess_token='.$cookie' 

$url ='https://www.aweber.com/users/leads/edit/3266822/'.$m; 
$cookies_file = "/tmp/cookie.txt";  

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); 
curl_setopt($ch, CURLOPT_REFERER, 'https://www.aweber.com/users/leads'); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);  
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies_file);   
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies_file);   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $str); 
$server_output = curl_exec($ch); 

if ($server_output == "OK") { 
    echo "Post OK"; 
} else { 
    echo "Post NOT OK \n"; 
    echo $server_output; 
} 

?> 
+0

도움 주셔서 감사합니다. POST NOT OK. 그게 무슨 뜻이야? URL이 좋지 않거나 게시판이 적합하지 않습니까? –

+0

그 외에도 어떤 오류가 발생 했습니까? 답을 업데이트하고'$ cookies_file = "/tmp/cookie.txt"; , 다시 시도하십시오. –

+0

나는 어떤 오류도 내지 않았다. 내 세션이 만료되었다는 것을 알 수 있습니다. 그리고 $ cookies_file에 대한 내 경로는 __DIR __. '/ cookies.txt'이고 이미 위 스크립트에 선언되어 있습니다. –