2012-08-01 62 views
0

我需要編寫一個php腳本,將登錄到我的管理頁面,然後提交rss。 我可以用下面的代碼登錄,但不能提交RSSCURL:PHP:無法提交

<?php 

function rssadd($url,$post,$post2) { 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
curl_setopt($ch, CURLOPT_REFERER, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($ch); 
curl_close($ch); 

$ch2 = curl_init($url); 
curl_setopt($ch2, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4'); 
curl_setopt($ch2, CURLOPT_POST, 1); 
curl_setopt($ch2, CURLOPT_POSTFIELDS, $post2); 
curl_setopt($ch2, CURLOPT_REFERER, $url); 
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); 
$result2 = curl_exec($ch2); 
return $result . $result2; 

} 
    $page2 = rssadd('http://site.com/admin.php?mod=rss&action=news&id=4','subaction=dologin&username=admin&password=pass','subaction=doit'); 

echo $page2; 

?> 

的HTML的「http://site.com/admin.php?mod=rss &行動=新聞& 「我不能提交

<input type="submit" name="subaction" value="doit" class="buttons"> 

回答

0

也許你需要保留之間的cookie請求?嘗試將CURLOPT_COOKIEFILE設置爲''(空字符串)。您還需要在兩個請求上使用相同的捲曲控制柄 - 而不是關閉第一個控柄並初始化一個新控柄,只需更改第一個控柄上的選項並再次運行即可。

我原本學會了如何做到這一點從這堆棧溢出答案:https://stackoverflow.com/a/5758471/638544