2013-01-22 53 views
0

嗨是卷曲使用POST与cookie的最佳方法,也导航到另一个页面的报废?我正在使用下面的编码,我无法使它工作。简单的HTML Dom和卷曲

include('simple_html_dom.php'); 

    $data = array(
    '__EVENTTARGET' => '', 
    '__EVENTARGUMENT' => '', 
    '__VIEWSTATE' => '%2FwEPDwUKLTcyODA2ODEwMGRk', 
    'Myname' => 'justdev12345', 
    'Mypassword' => '12345', 
    'idLogin' => 'Login', 
    'tmplang2' => '6', 
    'fm' => '', 
    'jc' => '', 
    'LoginRef' => '' 
    ); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://secure.site.com/mainframe.aspx"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "sdc_cookies.txt"); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "sdc_cookies.txt"); 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 

$output = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 

$output = new simple_html_dom(); 
$output = file_get_html('http://profiles.site.com/profile_900.aspx?AccountID=ShopCartUpdate'); 
print $output; 
+0

我想你也应该使用curl和相同的cookies文件来获得第二页。否则,就我所知,它不会使用您通过登录设置的cookie。 – Zombaya

+1

脚本的哪些部分不起作用? – Tchoupi

+0

@MathieuImbert curl和simple_html_dom部分。我没有一个例子可以让我们开始工作。 – acctman

回答

2

你的代码没问题,直到你扔掉curl响应并用simple-html-dom加载url为止。如果您想使用卷曲响应,它应该如下所示:

$html = str_get_html($output); 
$html->find('title'); 

否则,您应该删除所有卷曲代码。

+0

我的问题是我需要使用一个URL登录,然后导航到第二个配置文件url刮。我该怎么做,同时保持由curl创建的连接 – acctman

+0

您需要使用curl创建两个请求。 file_get_html会忽略你的卷曲饼干罐子。 – pguardiario