如何使用php在远程网站中获取表单的原始post数据
我想从我的网站登录到一个远程网站。因此,我使用cURL实现了这一点,并成功地使用了以下代码:如何使用php在远程网站中获取表单的原始post数据,php,curl,post,cookies,login,Php,Curl,Post,Cookies,Login,我想从我的网站登录到一个远程网站。因此,我使用cURL实现了这一点,并成功地使用了以下代码: function login($url,$data) { $fp = fopen("cookie.txt", "w"); fclose($fp); $login = curl_init(); curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($login, CURLOPT_COOKIEFILE
function login($url,$data)
{
$fp = fopen("cookie.txt", "w");
fclose($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_TIMEOUT, 40000);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start();
return curl_exec ($login);
ob_end_clean();
curl_close ($login);
unset($login);
}
因此,为了发布数据,我在网站上使用了表单的原始数据。这是我从Edge中的开发者工具中获得的。当我尝试直接登录远程网站时()
问题是viewstate、validation和viewstategenerator参数的值每24小时都在更改
因此,如果PHP中有一种方法可以获取网站的原始帖子数据,我可以更新正在更改的原始数据参数值。使用简单的PHP DOM解析它们
// get simple_html_dom.php from : https://netix.dl.sourceforge.net/project/simplehtmldom/simple_html_dom.php
require_once('simple_html_dom.php');
function login($url, $data){
$html = file_get_html( $url );
foreach ($html->find('input') as $input){
# echo "INPUTDOM". print_r($input);
if ($input->attr['name']=="__VIEWSTATE"){
//__VIEWSTATE
echo "__VIEWSTATE: {$input->attr['value']}\n";
$form_data['__VIEWSTATE'] = $input->attr['value'];
} elseif ($input->attr['name']=="__VIEWSTATEGENERATOR"){
//__VIEWSTATEGENERATOR
echo "__VIEWSTATEGENERATOR: {$input->attr['value']}\n";
$form_data['__VIEWSTATEGENERATOR'] = $input->attr['value'];
} elseif ($input->attr['name']=="__VIEWSTATE"){
//__EVENTVALIDATION
echo "__VIEWSTATE: {$input->attr['value']}\n";
$form_data['__EVENTVALIDATION'] = $input->attr['value'];
}
};
return $form_data;
}
echo login('http://vce.ac.in/index.aspx',['txtLoginID'=> 'user', 'txtPWD'=> 'password'] );
您可以获取表单的html并解析原始html中的所有输入和值…您是否试图在此网站强制输入密码?不,我有一对有效的用户名和密码。但问题是viewstate、validation和viewstategenerator的参数每24小时都在变化(请参阅随附的屏幕截图)