2011-11-29 129 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/