2011-11-29 193 views
0

我试图通过CURL集成Aweber,但它总是返回一条消息“电子邮件地址无效”,但是如果我粘贴相同的URL,我将通过它在浏览器地址栏中卷曲它的作品,并将其添加到aweber列表。任何一个可以指导我怎样才能让它通过卷曲在这里工作是我的代码:Aweber通过卷曲集成

$listname = 'sarnia-basic'; // YOUR LIST NAME 
$adtracking = 'sarniabusiness'; // AD TRACKING 

$url = 'http://www.aweber.com/scripts/addlead.pl?listname=sarnia-basic&meta_adtracking=sarniabusiness&name=Mohammad Tanveer&[email protected]&meta_message=1&redirect=http://www.aweber.com/form/thankyou_vo.html';    

$ch1 = curl_init($url);    

$options = array(CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_USERAGENT => 'Mozilla/5.0', 
    CURLOPT_HEADER => false, 
    CURLOPT_FOLLOWLOCATION => true, 
    CURLOPT_TIMEOUT => 10, 
    CURLOPT_FAILONERROR => true, 
    CURLOPT_AUTOREFERER => true, 
); 

curl_setopt_array($ch1, $options);     

$mh = curl_multi_init(); 

curl_multi_add_handle($mh, $ch1);    

$running = null; 

do { 
curl_multi_exec($mh, $running); 
} while ($running); 

$html = curl_multi_getcontent($ch1);     

curl_multi_remove_handle($mh, $ch1); 

curl_multi_close($mh); 

回答

0

您可能希望你把它交给aweber之前尝试您的电子邮件地址使用进行urlencode()...

+0

我已经加入进行urlencode(),但它仍然没有工作 – user1020553

0

你应该在发送前编码url参数。电子邮件字段中的“@”字符应该编码为“%40”。当然,正确的方法是使用 - >http://php.net/manual/en/function.urlencode.php

编辑:

$url = 'http://www.aweber.com/scripts/addlead.pl?listname='.urlencode('sarnia-basic').'&meta_adtracking='.urlencode('sarniabusiness').'&name='.urlencode('Mohammad Tanveer').'&email='.urlencode('[email protected]').'&meta_message='.urlencode('1').'&redirect='.urlencode('http://www.aweber.com/form/thankyou_vo.html'); 
+0

我已经加入进行urlencode(),但它仍然没有工作 – user1020553

+0

尝试这样的(见编辑) –

+0

感谢它的工作。 – user1020553

0

此代码的工作,因为我用它;然而,以任何其他方式发送它,但直接通过表单将导致a)电子邮件地址的所有者收到确认信息,并且b)订户从您的服务器ip地址添加而不是自己的,这可能会导致您在而如果它违反了Aweber的TOS。如果您需要将订阅者添加到数据库或在提交之前执行其他处理,最好的方法是通过ajax执行所有处理,并且处理完成后返回true,以便提交表单。

<?php 

$strPost = ''; 

foreach($_POST as $key => $val) 
{ 
    $strPost .= $key . '=' . urlencode(trim($val)) . '&'; 
} 

$strPost = substr($strPost, 0, -1); 

$strUrl = 'http://www.aweber.com/scripts/addlead.pl'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $strUrl); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER,array('Expect:');    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_NOBODY, FALSE); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $strPost); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); 
$response = curl_exec($ch); 
curl_close($ch); 
0

Aweber会阻止你的IP地址,如果你卷曲请求添加电子邮件。

他们有一个API,它可以让你添加用户:https://labs.aweber.com/