使用CURL=>;更新服务器中的订阅服务器;会话已过期

使用CURL=>;更新服务器中的订阅服务器;会话已过期,curl,php,aweber,Curl,Php,Aweber,我正在尝试使用Curl更新Aweber中的一些自定义字段。 当我试图通过postfields时,有人告诉我我的会话已过期。然而,我可以登录并做其他工作人员没有这个问题 问题可能是因为没有表单,要验证的按钮不是输入类型submit,而是一个有js函数的按钮?然而,我在firebug中查看“网络”=>XHR,要发送的链接与表单中的所有参数相同 $str = 'data[submit]=1 &data[Lead][prev_stop_status]=0 &unsubscribe_lea

我正在尝试使用Curl更新Aweber中的一些自定义字段。 当我试图通过postfields时,有人告诉我我的会话已过期。然而,我可以登录并做其他工作人员没有这个问题

问题可能是因为没有表单,要验证的按钮不是输入类型submit,而是一个有js函数的按钮?然而,我在firebug中查看“网络”=>XHR,要发送的链接与表单中的所有参数相同

$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对应于lead的id

$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的图片来帮助理解,但我需要更多的声誉点

有人有主意吗

编辑:此处显示通过live http头发送的请求:

POST/users/leads/edit/3266822/593217945.D=0和不取取用。铅=1和数据。铅=1和数据。铅=1和数据。铅=1和数据。铅=1和数据,铅=1和数据,铅%5。5。5。5 5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。5。6。6。6。5。6。6。6。6。6。5。6。5。6。6。6。6&数据%5b潜在客户%5D%5B59321794%5D%5Bdatum3%5D=sdsdfsdfsdfs和数据%5BLead%5D%5B59321794%5D%5Ddatum4%5BLead%5D%5B59321794%5D%5Bdatum5%5D=ZZZZZZZZZZZZZZZ和数据%5B59321794%5D%5Bname2%5D=LMKMLKLLLL和消息旧=1和数据%5BLead%5B59321794%5D%5B消息%5B59321794%5D=5B8B8B9CFU=78088BU

这里是标题:

POST/users/leads/edit/3266822/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;q=0.8,在美国;q=0.5,en;q=0.3

接受编码:gzip,deflate

内容类型:application/x-www-form-urlencoded;字符集=UTF-8

X-request-With:XMLHttpRequest

推荐人:

内容长度:619

Cookie:Cookie\u aweber\u referer\u 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=(非%20set)| utmcmd=(非%20set)| utmctr=aweber_ga=GA1.2.931755370.1390668636;AppCookie[cookie_support]=受支持;TS8fba11_29=c7dae97d9386c44fe3317a881058edd12c7ef8b9018afb4c00000000000000000052e3eb6c__ctxpop=1;自动回复=d18b8246230780a51e967326cf687009e9cc2d81;AppCookie[客户]=1;AppCookie[curlis]=teststeli;kvcd=1390668716223;km_ai=Km0KWrpCZfFJ0Q7ArZebQRtwxVE%3D;km_uq=;km_vs=1;km_lv=1390668716;km_ni=836900;ki_=9560e337-a9a3-16a1-44d0-1060ea2aa10c;ki_t=13906681618%3B13906668681618%3B13906686881618%3B1%3B1%3B1

连接:保持活力

Pragma:没有缓存

缓存控制:没有缓存

5.D=0和不取取用。铅=1和数据。铅=1和数据。铅=1和数据。铅=1和数据。铅=1和数据,铅=1和数据,铅%5。5。5。5 5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。5。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。6。5。6。6。6。5。6。6。6。6。6。5。6。5。6。6。6。6&数据%5b潜在客户%5D%5B59321794%5D%5Bdatum3%5D=SDSDFSDFSFDfs和数据%5BLead%5D%5B59321794%5D%5Bdatum4%5Dfgdsgd和数据%5BLead%5B59321794%5D%5Bdatum5%5D=ZZZZZZZZZZZZZZZZZZZZZZZZZZ和数据%5BLead%5B59321794%5D%5B%5Bname2%5D%5D=LMKMLLKLL230LLL和消息%5D=1和数据%5B%5D%5B%5D=5D=5BKMLLKMLL230LLL和消息%5D=1和消息%5D%5B%5D=5D%5B8BLLKMLLKMLLK

HTTP/1.1200ok

日期:2014年1月25日星期六17:08:56 GMT

p3p:CP=“NOI ADM DEV PSAi COM NAV我们的OTRo STP IND DEM”

到期时间:1997年7月26日星期一格林尼治标准时间05:00:00

最后修改:2014年1月25日星期六17:08:57 GMT

缓存控制:无存储,无缓存,必须重新验证,无缓存

Pragma:没有缓存,没有缓存

更改:接受编码,用户代理

内容编码:gzip

内容长度:164

保持活动状态:超时=3,最大值=100

连接:保持活力

内容类型:文本/纯文本

设置Cookie:TS8fba11=75ec74303092e39b0609f650ba7394ad2c7ef8b9018afb4c52e3efa8bd1b0f791761e990;Path=/

您试过了吗

<?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;
}

?>

你有重定向吗?“因为在这种情况下,您可能还需要指定一个cookiejar,而不仅仅是一个cookiefile。另外:在您发布的示例中,您正在向数据添加换行符,如果将整个post字符串设为一行,会发生什么情况?我如何知道是否得到重定向?我还试图指定一个cookiejar,但结果是一样的。是的,我也试着做了一行。暂时禁用follow location&在输出中包含标题,这会告诉你很多。然后再说一遍:你可以问Awerber的同事出了什么问题,或者看看你是否可以用他们的API做你想做的事情。是的,如果我没有发现,也许我会检查他们的API。你是否正确地获取了这个变量。$cookie'
?谢谢你的帮助。我收到的邮件不好。那是什么意思?url不好或postfields不好?除此之外,您还遇到了哪些错误?我已经更新了答案并添加了“$cookies\u file=“/tmp/cookie.txt”,再试一次。我没有收到任何错误。只是告诉我我的课程已经过期了。$cookies_文件的路径是DIR.'/cookies.txt',我已经在上面的脚本中声明了它。让我们尝试一下,安装
live http headers
addon for firefox,激活它并手动登录到aweber。复制标题并将其传递给您的答案。这可能有助于我们了解错误所在。我更新了答案。问题是,我可以获取页面并查看带有旧字段的表单,但字段不会被修改,也不会考虑通过url发送的内容字段。