【发布时间】:2017-11-20 04:41:16
【问题描述】:
我想从我的远程网站登录。因此,我使用 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, "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);
}
因此,为了发布数据,我使用了网站中表单的原始数据。当我尝试直接登录远程网站 (http://vce.ac.in) 时,我设法从 Edge 中的开发人员工具中获得。Here is the screenshot of raw POST data
问题在于参数 viewstate、validation、viewstategenerator 的值每 24 小时都在变化。
因此,如果 PHP 中有一种方法可以获取网站的原始 POST 数据,我可以更新那些正在变化的原始数据参数的值。
【问题讨论】:
-
您可以获取表单的 html 并从原始 html 解析所有输入和值...
-
你想在这个网站上强行输入密码吗?
-
不,我有一对有效的用户名和密码。但问题是参数 viewstate、validation、viewstategenerator 每 24 小时更改一次(请参阅我附上的屏幕截图)
标签: php curl post cookies login