在PHP中将POST数据作为数组发送以进行登录

时间:2017-04-04 07:00:25

标签: php post login

我正在为您必须先登录的网站编写一个webcrawler。我已经尝试过关于堆栈溢出的各种建议,但到目前为止还没有运气。我认为问题是POST数据是一个数组,我没有正确初始化它?

POST数据:

用户[电子邮件]名称:myusername

用户[口令]:输入mypassword

提交:登录

他们网站上的HTML:

<form method="post" id="user_sign_in" action="" onsubmit="return checkForm()" accept-charset="UTF-8" _lpchecked="1"><input type="text" name="user[email]" id="user_email"><input type="password" name="user[password]" id="user_password"><input type="submit" value="SIGN IN" name="commit"></form>

这是我尝试过的:


$postdata = http_build_query(
    array(
        'user[email]' => 'myusername',
        'user[password]' => 'mypassword',
        'commit' => 'SIGN IN'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context  = stream_context_create($opts);

echo file_get_contents("http://website.com/sign-in", false, $context);

0 个答案:

没有答案