如何登录远程站点,并在php中下载报告

时间:2012-12-07 13:22:37

标签: php curl

我正在尝试登录远程站点,然后在登录成功后重定向到新页面。在该页面上,我想从几个下拉菜单(包括一个日期范围)中进行选择,然后生成报告。

现在,我有一个可以登录网站的脚本 - 但我无法弄清楚如何遍历下拉列表。有什么建议吗?

$url = 'example.co.za/login'; 
$vars = array('username'=>'', 'password'=>''); 

$login = getUrl($url, 'post', $vars); 
$remotePage = getUrl($remotePageUrl); 

function getUrl($login) 
{
    $ch = curl_init();
    if ($method == 'post') 
    {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/cookies.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/cookies.txt');
    $buffer = curl_exec($ch);
    print_r($buffer3);
    curl_close($ch);
    return $buffer;
}

1 个答案:

答案 0 :(得分:0)

以编程方式提交表单时,您无需从下拉列表中“选择”。您可以像处理任何其他输入字段一样对待它,并为表单元素传递值。但是您应该传递下拉列表中的一个值,因为这是服务器期望接收的值。

对于这样的下拉列表:

<select name="weekday">
    <option value="Sunday">Sunday</option>
    <option value="Monday">Monday</option>
    <option value="Tuesday">Tuesday</option>
    <option value="Wednesday">Wednesday</option>
    <option value="Thursday">Thursday</option>
    <option value="Friday">Friday</option>
    <option value="Saturday">Saturday</option>
</select>

您可以像登录表单一样进行POST:

$vars = array("weekday" => "Friday");
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
相关问题