PHP Curl登录到ASPX页面,之后需要将数据发布到Login页面

时间:2013-03-20 22:14:47

标签: php asp.net post curl

首先,我很抱歉我的英语,我写英文不好,我没时间通过支票拼写。 KKK

所以,这是我的问题的概述。 我能够使用PHP CURL命令登录到ASPX页面,使用ASPX请求的所有那些疯狂变量发送帖子数据。 我的问题是,要将帖子数据(用户名和密码)发送到登录页面,我必须在帖子中发送一个帖子数据(带有一些疯狂的东西)到登录页面,以获得对页面的访问权限,换句话说,如果我发送一些指定的帖子数据(带有那个疯狂的stuuf)到页面,我只能访问登录页面,如果我不发送它,我将重定向到主页面,而不是登录页面。

我能够使用疯狂的帖子对登录页面执行CURL命令并访问登录页面。 现在,在发送第一个疯狂的帖子以获得对登录页面的访问权限后,如何将带有用户/密码的帖子发送到登录页面?

你真的不好意思吗? 如果没有,我可以尝试解释更多。

谢谢!

圣拉斐尔

1 个答案:

答案 0 :(得分:0)

如果您想让用户访问仅在登录后可用的页面 - 您必须从登录页面保存COOKIE,然后在每次请求时发送它们。这可以通过卷曲来完成。

获取Cookie:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$data = curl_exec($ch);
$header = substr($data, 0, curl_getinfo($ch, CURLINFO_HEADER_SIZE));
$body = substr($data, curl_getinfo($ch, CURLINFO_HEADER_SIZE));
preg_match_all("/Set-Cookie: (.*?)=(.*?);/i", $header, $res);
$cookie = '';
foreach ($res[1] as $key => $value) {
   $cookie .= $value . '=' . $res[2][$key] . '; ';
};
curl_close($ch);

将Cookie返回到另一个curl请求:

curl_setopt($ch, CURLOPT_COOKIE, $cookie);